Git 指令整理备用
- 丢弃工作区修改:
git checkout -- file
-
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”
- 丢弃暂存区修改:
git reset HEAD file - 版本回退 (未推送到远程库):
git reset --hard commit_id - 查看提交历史:
git log - 查看命令历史:
git reflog
- 查看当前分支:
git branch - 创建分支:
git branch <name> - 切换到分支:
git checkout <name> - 创建 + 切换到分支:
git checkout -b <name> - 合并指定分支到当前分支 (如: 当前在 master, 合并 dev):
git merge dev - 普通合并:
git merge --no-ff <name>
- 加上
--no-ff合并后的历史有分支,fast forward合并后看不出来做过合并
- 删除分支:
git branch -d <name>
- 强行删除:
git branch -D <name>
- 查看分支合并图 (可带参数):
git log --graph[ --pretty=oneline --abbrev-commit]
- 修复 bug 时临时储存工作区未增加、提交内容:
git stash - 恢复 stash 并删除:
git stash pop - 查看临时储存的内容:
git stash list - 恢复临时储存但不删除 stash:
git stash apply
- 多次 stash 恢复:
git stash apply stash@{序号},序号通过git stash list查看
- 删除 stash:
git stash drop
- 查看远程库信息:
git remote -v - 从本地推送分支:
git push origin <branch-name>,如果推送失败,先用git pull抓取远程更新提交 - 在本地创建和远程分支对应的分支:
git checkout -b <branch-name> origin/<branch-name> - 建立本地分支和远程分支的关联:
git branch --set-upstream <branch-name> origin/<branch-name>
- 新建标签:
git tag <name>
- 可在后面指定一个 commit id, 通过
git log --pretty=oneline --abbrev-commit查看 commit id
- 指定标签信息:
git tag -a <tagname> -m "blablabla..." - 用PGP签名标签:
git tag -s <tagname> -m "blablabla..." - 查看所有标签:
git tag - 查看标签说明:
git show <tagname> - 推送一个本地标签:
git push origin <tagname> - 推送全部未推送过的本地标签:
git push origin --tags - 删除一个本地标签:
git tag -d <tagname> - 删除一个远程标签:
git push origin :refs/tags/<tagname>