2012-07-10 57 views
0

說我有一個 - B - C - d - 電子 - F - 摹混帳恢復到一個特定的承諾已在分支歷史,但被撤消

上提交C可能會是「水平滾動功能」。後來我們改變了主意,在提交D時出現了「垂直滾動」。然後,E,F,G是不影響視圖的後端數據庫遷移更改。

但現在我們決定給水平滾動另一個機會,我們如何回到水平滾動?我不想回到C​​,因爲我想保留E,F,G。我想轉發合併C ...我想合併不是正確的術語,因爲C已經存在於這個分支的歷史。我想我可以將C中的特定文件簽出到我當前的工作目錄中,但這似乎是手動的,我將不得不記住哪些視圖文件和css文件已被修改。

有沒有辦法在C和G之間生成補丁差異,然後將它應用到當前工作目錄?這會起作用嗎?我怎麼做?

+1

嘗試「git cherry-pick C」 – titaniumdecoy 2012-07-10 18:23:42

回答

1

除了已經提到的cherry-pick(@titaniumdecoy),還有交互式重定位:git rebase -i C(這意味着你有機會重寫歷史,就好像沒有D)。如果您已經發布了歷史記錄(如果已經有例如歷史記錄的人員),那麼這當然會導致合併問題。在這種情況下,如果D是C的還原(git revert C),則櫻桃選擇可能工作。否則,最好還原D:git revert D

+0

是的,我發現後,我想git恢復D。但是我最終嘗試了櫻桃選擇C,並且這也起作用了。感謝這兩個正確的答案。 – Homan 2012-07-10 18:54:10