在使用git时,经常会遇到在未push之前,发现提交的代码或者comment有问题。如果在Agile 敏捷开发的公司,往往你的git与Jira是相关联的,这时一般要求你的comment 里的Story Id要与Jira 一致,如果写错了,导致你的commit会push不到远程服务器上。这只是我提到的一种情况,国内的公司往往这种模式还很少。我们就是在任何commit有问题想回撤一下这个commit。
现在我做准备提交一个文件到github上,文件名叫ReadMe.md
git add ReadMe.md
git commit -m "this is a wrong commit"
这个commit 的comment是错误的,将它修改为“this is a right commit”
git commit --amend
这时会在git bash的命令行里,出现vi 编辑窗口,然后进行修改保存就可以了,因为使用的是vi,请掌握vi的编辑保存操作。
以上是在没有代码要撤销,只有comment里的信息要修改时,所使用的命令
如果你的上一次提交,还有代码改错了,要撤回重新修改,那可以使用下面的命令
git reset HEAD~
<< edit files as necessary >>
git add ...
git commit -c ORIG_HEAD
这个命令会回滚你的全部commit,你只需重新编辑你的文件,然后重新git add, commit
ORIG_HEAD的意思是和“--amend”是一个意思,会打开一个编辑器,去编辑你的comment,修改完保存即可 如果你的comment不需要修改,只是文件的更改,那只用 -c参数即可。