编辑提交
我刚才提交了什么
如果使用git commit -a提交了一次变化,而又不确定提交了哪些内容,可以使用下面的命令显示当前HEAD上的最近一次提交
git show
我的提交信息写错了
如果提交信息写错了,并且这次提交还没有push,可以通过下面的方法修改提交信息,这会打开默认编辑器,然后就可以修改相应的提交信息
git commit --amend --only
提交里的用户名和邮箱不正确
适用场景:假如我电脑git设置了global用户名和邮箱,但是某次提交临时为其他用户的操作,可以使用下面的命令将这个提交修改用户信息
git commit --amend --author "username <xxxxx@email.com>"
我想要删除我的最后一次提交
如果需要删除已经push的提交,可以使用下面的方法,可是这会不可逆的改变你的历史,如果不是很确定,不要这么做
git reset HEAD^ --hard
git push
如果还没有push,直接reset到最后一次提交前的状态就可以了
git reset --soft HEAD^
意外地做了一次硬重置,我想要找回我的内容
如果意外地git reset --hard,不必担心,通常可以找回之前的提交,因为git有日志系统,会保存几天时间
git reflog
你将会看到一个你过去提交的列表和一个重置的提交,选择想要回到的提交的SHA,再重置一次就ok
git reset --hard SHA1234
暂存
想要把暂存的内容添加到上一次的提交
git commit --amend
未暂存的内容
想要把未暂存的内容移动到一个新的分支
git checkout -b my-branch
想要把未暂存的内容移动到另一个已存在的分支
git stash
git checkout my-branch
git stash pop
想要丢弃本地未提交的变化
重置某个特殊的文件
git reset filename
重置origin和本地之间的一些提交
git reset --hard HEAD^
# or
git reset --hard HEAD~4
# or
git checkout -f
分支
从错误的分支拉取了内容,或把内容拉取到了错误的分支
重置分支到你需要的提交
git reflog
git reset --heard c5bcaa5
我想扔掉本地的提交,以便我的分支与远程的保持一致
先确认没有将内容push到远程,然后恢复
git status
git reset --hard origin/my-branch
我想删除一个分支
删除一个远程分支
git push origin --delete my-branch
删除一个本地分支
git branch -D my-branch
合并
我想撤销merge
git在进行危险操作时会把原始的HEAD保存在一个叫做ORIG_HEAD的变量里
git reset --hard ORIG_HEAD
本文源自github开源项目,在其基础上进行个人总结(git-flight-rules/README_zh-CN.md at master · k88hudson/git-flight-rules · GitHub)