发生了什么事之前之一: CHANGE1, git的承诺, 混帐推, change2, git的承诺混帐:摆脱以前的承诺,让您可以修改
什么应该发生的事情: CHANGE1, git的承诺, 混帐推, change2, git的承诺--amend
,我保留change2这并不重要,但重要的是我我能够修改原始提交。我该怎么做呢?
发生了什么事之前之一: CHANGE1, git的承诺, 混帐推, change2, git的承诺混帐:摆脱以前的承诺,让您可以修改
什么应该发生的事情: CHANGE1, git的承诺, 混帐推, change2, git的承诺--amend
,我保留change2这并不重要,但重要的是我我能够修改原始提交。我该怎么做呢?
既然你推了它,请注意这很棘手,你正在重写历史。
您可以将git rebase -i
设置为第一次提交之前,并选择edit
作为呈现给您的文本中的提交。这样,你将被带到第一个提交状态,在那里你改变/修改,然后git将应用下一个提交。
或者你可以git reset --soft first
去第一次提交并与change2一起修改它。
或者git reset --hard first
去第一次提交和修改它没有change2
[我想你知道,莱纳斯认为这是邪恶]
$ 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