2015-09-04 19 views
0

我有3個分支如何避免在GIT中將完整的合併歷史記錄成主文件?

  1. 發展
  2. 發佈分支。

根據一般分支策略,所有開發活動(入住/退房等)都在發佈分支中執行,發佈準備好的代碼被合併到開發分支以及主科。

我的期望:假設我在發佈分支中總共提交了大約500次提交。我有一個要求,在最終合併發佈分支的發佈準備代碼的過程中,開發分支應該提交所有提交歷史的提交。即500次提交,而合併到主人不應該擁有發佈分支中發生的所有歷史記錄(提交)。

它應該更像是第一次提交和最後一次提交的差異,而不是所有的中間提交。 (主分公司不應該有500次提交)

有沒有可能做到這一點,如果是這樣,如何?

回答

2

這聽起來像你想要squash your commits

當你有幾個提交,並且你想把它們壓縮到一個提交中時,壓縮提交很有用。

+0

假設你沒有任何提交的主機上沒有發佈,一個更容易和更快的方式擠壓提交將'Git結帳釋放 - 。 git commit'而在主人。我並不是說壓縮提交是一個好主意(我不明白它會起什麼作用)。只是因爲某種原因你決定壓扁它們,你可以簡單地做到這一點。 –

1

壓扁許多提交數量需要很長時間。你所能做的就是融合而不是快進。

你可以按照這個策略:

移動開發和運行

git merge release 

然後移動到主服務器和運行

git merge --no-ff develop 

這將創建一個合併提交在主這將有效相當於500次提交。

這個策略的優點是它不會混淆你的git歷史,並且提交不會「丟失」,而壓縮將完全修改你的歷史,恕我直言,我不認爲修改500次提交值得的歷史是一個好主意

+0

感謝您的建議@TheGeorgeous :)但仍高手顯示所有提交,我使用的命令 git結帳發佈 git合併發佈; 混帳推起源發展之後 git的結帳主 混帳 合併--no-FF開發 混帳推起源主 ,但沒有運氣,請糾正我,如果我錯了 –

+0

的git的日誌將顯示它,是的,但恢復會讓你回到合併發生之前的提交。 – TheGeorgeous

0

您可以在develop分支之外創建一個分支,也許稱爲develop_merge。擠壓該分支上的提交,並將其合併到主控中。原始分支仍然擁有所有的歷史。

相關問題