2011-09-28 26 views
1

发生了什么事之前之一: CHANGE1, git的承诺, 混帐推, change2, git的承诺混帐:摆脱以前的承诺,让您可以修改

什么应该发生的事情: CHANGE1, git的承诺, 混帐推, change2, git的承诺--amend

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

回答

1

既然你推了它,请注意这很棘手,你正在重写历史。

您可以将git rebase -i设置为第一次提交之前,并选择edit作为呈现给您的文本中的提交。这样,你将被带到第一个提交状态,在那里你改变/修改,然后git将应用下一个提交。

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

或者git reset --hard first去第一次提交和修改它没有change2

0

[我想你知道,莱纳斯认为这是邪恶]

$ 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