git version 1.7.1
我創建了2個分支即branch1和branch2。合併一些差異,但不是全部
我一直在branch1和branch2上開發。所以現在兩個分支都不一樣。
但是,我想合併branch1到branch2。但我不確定的是,我只想合併一些代碼更改。我在branch1中寫了一些函數,我只想合併這些函數而沒有其他的東西。
使用git可以嗎?
git version 1.7.1
我創建了2個分支即branch1和branch2。合併一些差異,但不是全部
我一直在branch1和branch2上開發。所以現在兩個分支都不一樣。
但是,我想合併branch1到branch2。但我不確定的是,我只想合併一些代碼更改。我在branch1中寫了一些函數,我只想合併這些函數而沒有其他的東西。
使用git可以嗎?
cherry-pick
命令從一個分支獲取單個提交。然後使用此處顯示的方法將提交拆分爲單獨的提交。使用git rebase -i
獲取原始提交進行編輯。 然後git reset HEAD^
選擇性還原更改, 然後git commit
提交該位作爲歷史中的新提交。
或
使用 混帳add --patch
或可能混帳add --interactive
它允許你添加一個大塊只是部分,如果你想不同的變化拆分到一個單獨的文件
我希望它可以幫助你
Git代碼快照原因,代表全部項目的全部內容,在提交後提交。
這意味着你可以很容易地cherry-pick一個或從一個分支到另一個(如在評論中所建議的KingCrunch)
多次提交但你不能合併中的一個提交一些文件(而不是其他)。
可以以編輯的最後x相關更改提交嘗試rebase --interactive branch1~x
,分裂這些提交到2:
然後,您可以重新排序第二組提交,並重新綁定它們或在branch2
之上挑逗它們。
那麼,你*可以*做一個部分合並('merge --no-commit',and unstage一些變化),但這是一個非常糟糕的主意,因爲就Git而言,這是一個真正的合併。當然,最好的事情是避免不必要問這個問題 - 在不同的分支上開發單獨的東西。雖然互動式底座可以幫助你到達那裏! – Cascabel 2011-04-04 13:39:08
@Jefromi:順便說一句,你看到http://stackoverflow.com/questions/5524731/git-ignoring-gitattributes-pattern/5525195#5525195的意見? (或者你是否希望我在我的答案中包含所述評論?) – VonC 2011-04-04 14:10:53
cherry-pick? http://www.kernel.org/pub/software/scm/git/docs/git-cherry-pick.html – KingCrunch 2011-04-04 07:35:52