如何撤消我上次的git add / commit?

我编辑了一个文件并做了:
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     
已邀请:
如果您已提交第二次更改,请先重置:
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
,这感觉更合乎逻辑,但不一定更容易。使用它来合并包含两个提交的分支,直到前一个提交。 压扁也适用于
git rebase
。     

要回复问题请先登录注册