發生了什麼事之前之一: 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