2012-12-09 131 views
1

我回溯了我的歷史記錄,以查找iOS5.1爲我的應用程序崩潰的原因。我已經追蹤到一次提交,但是提交有很多文件。將下一個提交的更改合併到當前提交

我想要git checkout [commit before iOS5 break],並且將提交的所有更改從iOS5(即下一個提交)合併到提交之前提交到而沒有提交更改。這樣,我可以簡單地恢復每個文件,直到我找到了iOS 5發生變化的那個文件。

上的任何想法如何從提交中進行更改並將它們放到當前分支上,而不必提交它們?

謝謝。

回答

2

您必須創建一個分支第一:

git checkout -b fix bcd7c93 
git merge -n 8b53674 # merge without auto-commit 

您的解決方案創建:

  • a detached head:您根本無法合併,因爲您的下一次提交不會被引用任何分支HEAD(因此「超然」的一部分)enced
  • 一個duplicate commit:你將無法輕鬆地將「fix」分支合併回主(或您的當前分支,從中發現有缺陷的提交)

的想法是能夠修復的bug(修改一個或兩個文件),它合併回主枝上不重複所有提交你發現是有問題的其他文件的一部分。

1

對不起,回答我的問題,但事實證明,cherry-pick有這個選項:

git checkout -f bcd7c93 
git cherry-pick -n 8b53674