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>