我需要經常在開發和主之間合併。git策略有一組提交限制到一個特定的分支
我也有一個提交,我需要只適用於開發,爲本地工作。
此前我只從開發人員合併到master,所以我有一個分支production_changes,其中包含dev特殊提交的「撤消提交」。並從主人,我合併了這一點。用於正常工作。
現在每個我從開發合併的時間來掌握,反之亦然,我不得不摘櫻桃和應用相同的一再承諾:(。這是醜陋的。
我能適應什麼策略,使我可以在2個分支之間的無縫融合,但仍保留了一些,只有對那些分支的一個變化?
我需要經常在開發和主之間合併。git策略有一組提交限制到一個特定的分支
我也有一個提交,我需要只適用於開發,爲本地工作。
此前我只從開發人員合併到master,所以我有一個分支production_changes,其中包含dev特殊提交的「撤消提交」。並從主人,我合併了這一點。用於正常工作。
現在每個我從開發合併的時間來掌握,反之亦然,我不得不摘櫻桃和應用相同的一再承諾:(。這是醜陋的。
我能適應什麼策略,使我可以在2個分支之間的無縫融合,但仍保留了一些,只有對那些分支的一個變化?
我想,以防止某些文件建議merge driver(一.gitattributes
文件中在合併指令聲明腳本)受到特定提交的影響
(例如,如果某些文件是mu st不會被修改,那個驅動程序就像"keep mine" merge一樣簡單。這已被用來merge only specific directories通過實例,或者跟蹤如何config files are managed每枝)
的OP補充說:
但我期待更多的一個聰明的解決方案,如果存在的話,像「創建具有撤銷分支只提交,並應用它來掌握,假它開發」
聰明的解決方案...
嗯,我可以提出衝突合併git rerere
(重用記錄分辨率:如果合併到dev觸發衝突,如果解決的衝突是你有效地取消合併,你可以記錄該分辨率,以便在下一次合併時自動重複。
請參閱Rerere Your Boat...作者Scott Chacon瞭解更多信息。
我會在本地分支(即從未推到任何位置)執行此操作,在我從主服務器拉出時,我將重新設置到開發分支頂端。這並不完美,但我認爲這比櫻桃採摘要好一點。
即使你重新綁定到最新的master,有時候,當這個提交進入時你需要合併master。 – 2010-03-30 12:10:19
對git的謊言:將diff設置在以「dev」分支的分支點爲根的單獨分支中。然後「合併」成主沒有實際改變主:像git merge -s ours devfix-branch
(你做這個master
)
然後回到dev
和常合併:git merge devfix-branch
。現在dev
和master
都會認爲它們已經有了devfix,並且你可以繼續合併到master。
這是作爲練習留給讀者,看看這是否實際工作,或可以使工作。
太棒了!謝謝!下一次我想做這樣的事情,這就是我將要使用的。 現在,我解決了它通過使用一些未選中的文件照顧變化,以便合併是無縫的! – 2010-04-01 10:05:24
應該可以工作,但我期待更聰明的解決方案,如果存在的話,比如「創建一個只有撤消提交的分支並將其應用於主設備,將其假設在設備上」 – 2010-03-30 12:14:23
@ becomingGuru:剛完成我的回答用'git rerere'以防萬一。 – VonC 2010-03-30 17:28:50