2013-03-20 151 views
1

假設我們有一個git提交歷史看起來像:重寫GIT中提交歷史

ZZ [原點/主] A - >乙 - 「ç - > d - > E [主]

我們希望:

  • 倒帶歷史回A之前。
  • 請保持工作目錄E
  • A..E的所有更改集合合併爲一個提交。
  • 將結果推送到遠程。

結果應該是這樣的:

ZZ - > XX [主] [原點/主]

其中XX是提交包含之前提交甲變化.. Ë

回答

3

你可以試試:

git reset --hard E 
git reset --soft ZZ 
git commit 'comment' 
git push orgin master 

--soft

不觸及索引文件,也沒有在所有的工作樹(但重置頭,只是likeall模式一樣)。這會將所有更改的文件「更改爲已提交」,因爲git狀態會起作用。

+0

快速,簡單,優雅。謝謝。 – Kivin 2013-03-20 02:59:59

+0

@Kivin歡迎:) – pktangyue 2013-03-20 03:01:22