2011-09-28 24 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