2011-04-04 50 views
2
git version 1.7.1 

我創建了2個分支即branch1和branch2。合併一些差異,但不是全部

我一直在branch1和branch2上開發。所以現在兩個分支都不一樣。

但是,我想合併branch1到branch2。但我不確定的是,我只想合併一些代碼更改。我在branch1中寫了一些函數,我只想合併這些函數而沒有其他的東西。

使用git可以嗎?

+0

cherry-pick? http://www.kernel.org/pub/software/scm/git/docs/git-cherry-pick.html – KingCrunch 2011-04-04 07:35:52

回答

2

cherry-pick命令從一個分支獲取單個提交。然後使用此處顯示的方法將提交拆分爲單獨的提交。使用git rebase -i獲取原始提交進行編輯。 然後git reset HEAD^選擇性還原更改, 然後git commit提交該位作爲歷史中的新提交。

使用 混帳add --patch或可能混帳add --interactive它允許你添加一個大塊只是部分,如果你想不同的變化拆分到一個單獨的文件

我希望它可以幫助你

2

Git代碼快照原因,代表全部項目的全部內容,在提交後提交。

這意味着你可以很容易地cherry-pick一個或從一個分支到另一個(如在評論中所建議的KingCrunch

多次提交但你不能合併中的一個提交一些文件(而不是其他)。
可以以編輯的最後x相關更改提交嘗試rebase --interactive branch1~x,分裂這些提交到2:

  • 一個共同的變化,
  • 其他同要合併的變化。

然後,您可以重新排序第二組提交,並重新綁定它們或在branch2之上挑逗它們。

+0

那麼,你*可以*做一個部分合並('merge --no-commit',and unstage一些變化),但這是一個非常糟糕的主意,因爲就Git而言,這是一個真正的合併。當然,最好的事情是避免不必要問這個問題 - 在不同的分支上開發單獨的東西。雖然互動式底座可以幫助你到達那裏! – Cascabel 2011-04-04 13:39:08

+0

@Jefromi:順便說一句,你看到http://stackoverflow.com/questions/5524731/git-ignoring-gitattributes-pattern/5525195#5525195的意見? (或者你是否希望我在我的答案中包含所述評論?) – VonC 2011-04-04 14:10:53

相關問題