我编辑了一个文件并做了:
git add file.py
git commit -m 'fixed bug'
然后我编辑了另一个文件并执行了一个小错误修复。我不希望两个提交,一个接一个,显示'错误修复'。我想要一个提交'bug fixes'。
如何撤消上次添加/提交并更改第一个提交消息?
我正在查看git reset
,git revert
,git undo
命令,但我不想用猜测来搞砸我的回购
编辑:了解如何操作:http://www.gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html
答案 0 :(得分:33)
如果您已提交第二次更改,请先重置:
git reset HEAD^
现在您的HEAD
处于首次提交状态,并且本地文件的内容未更改。
git add <the file(s) for the second bug fix>
git commit --amend -m'bug fixes'
如果要为第二个错误修复包含所有跟踪和更改的文件,您可以像往常一样运行它:
git commit -a --amend
修改提交就是这样:
git add
或-a
)但是要小心:如果你分发了第一个提交,其他人的回购会变得奇怪。您不应该更改其他人提取的提交。
您也可以使用git merge --squash
,这感觉更合乎逻辑,但不一定更容易。使用它来合并包含两次提交的分支,直到前一次提交。
Squashing也适用于git rebase
。