1

发生了什么:change1,git commit,git push,change2,git commit

应该发生什么:change1,git commit,git push,change2,git commit --amend

保留 change2 并不重要,但重要的是我能够修改原始提交。我该怎么做呢?

4

2 回答 2

0

既然你已经推送了它,请注意这很棘手并且你正在改写历史。

您可以git rebase -i在第一次提交之前选择edit提交给您的文本中的提交。这样,您将进入您更改/修改的第一个提交状态,然后 git 将对其应用下一个提交。

或者你可以git reset --soft first去第一次提交并与change2一起修改它。

或者git reset --hard first去第一次提交并在没有更改的情况下修改它2

于 2011-09-28T21:57:18.710 回答
0

[我假设你知道 Linus 认为这是邪恶的]

$ git reset --hard HEAD^  # remove last commit
$ git commit --amend
$ git push --force <remote> <branch>

如果您希望之后应用最后一次提交,请执行

$ SHA1=`git rev-parse master`
$ git branch temp
# now the three commands above
$ git cherry-pick $SHA1
$ git branch -d temp
于 2011-09-28T21:57:45.167 回答