- 把当前目录变为git仓库
git init
- 关联到远程仓库
# 添加关联的仓库地址
git remote add origin git@github.com:wintests/gitDemo.git
# 删除当前已关联的仓库地址
git remote rm origin
- 查看远程库的详细信息
git remote -v
- 克隆代码到本地
git clone git@github.com:wintests/gitDemo.git
- 查看分支
# 查看当前分支
git branch
# 查看远程分支
git branch -r
# 查看所有分支
git branch -a
- 切换到 dev 分支
git checkout dev
- 创建并切换到新分支
git checkout -b 新分支
- 查看当前分支状态
git status
- 添加文件到暂存区
# 添加指定文件到暂存区
git add api/user.py
# 添加目录下所有改动文件到暂存区
git add .
- 提交
git commit -m "提交文字描述"
- 将代码推送到服务器主分支
git push origin master
- 更新本地的仓库
# 不填写,则默认当前分支
git pull
# 指定分支
git pull origin test_002
- 合并分支
# 把 dev 分支的代码合并到当前分支
git merge dev
# 可通过 git log 查到需合并提交的commit ID
# 仅把其他分支下某次提交的代码合并到当前分支,不会自动提交
git cherry-pick -n commit的ID
# 仅把其他分支下某次提交的代码合并到当前分支,并自动提交
git cherry-pick commit的ID
- 创建分支
# 本地创建分支
git branch test_002
# 将分支推送到服务器
git push origin test_002
注意:
stash
命令仅针对在git版本控制中的文件,如果是新增文件,那么需要先通过 git add 把新增文件加到git版本控制,然后再使用 stash 命令。
- 保存当前工作进度(执行后工作区/暂存区被还原到修改之前)
# 直接保存
git stash
# 保存时添加备注,主要为了方便查找
git stash save "添加备注信息"
- 显示所有已保存的工作进度
git stash list
- 恢复工作进度,不会删除该条保存进度
# 默认取 stash@{0} 进行恢复
git stash apply
# 从已保存工作进度中,指定一个恢复
git stash apply stash@{num}
- 删除单个工作进度
# 默认取 stash@{0} 进行删除
git stash drop
# 从已保存工作进度中,指定一个删除
git stash drop stash@{num}
- 恢复工作进度,同时会删除该条保存进度
# 默认取 stash@{0} 进行恢复
git stash pop
# 从已保存工作进度中,指定一个恢复
git stash pop stash@{num}
- 删除所有保存的工作进度
git stash clear
- 放弃工作区的修改
git checkout -- api/user.py
- 放弃暂存区的文件
git reset HEAD api/user.py
- 撤销commit
# 撤销上一次commit,但不撤销 git add 操作,也不删除工作区的代码改动
git reset --soft HEAD^
# 撤销上一次commit,同时撤销 git add 操作,并删除工作区的代码改动
git reset --hard HEAD^
- 删除文件
git rm -rf api/user.py
- 删除分支
# 删除本地分支
git branch -d test_003
# 删除远程分支
git push origin --delete test_003
- 查看历史记录
# 显示详细提交日志(如果要退出,输入字母Q即可)
git log
# 只显示commit版本号和备注信息
git log --pretty=oneline
# 查看所有分支的所有操作记录(包括被删除的)
git reflog
- 查看当前分支下的文件差异
# 查看当前分支下的工作区和版本库文件差异
git diff HEAD --stat
# 查看当前分支下的工作区和版本库有差异的所有文件
git diff HEAD -- 文件名
- 比较不同分支下的文件差异
# 列出2个分支下有差异的所有文件
git diff 分支1 分支2 --stat
# 查看2个分支下指定文件的差异
git diff 分支1 分支2 文件名