2012-03-05 87 views
1

我在改變我的混帳合併的工作流程的過程和遇到下面的問題:合併/變基工作流程

到現在爲止,我已經合併(--no-FF)我在develop分支修改無論何時我發佈新版本,都會返回master。這生成了一個新的合併提交,其中包含所有develop -commit的歷史記錄(--log)。 我意識到這是次優的,並且希望實際上從我的develop分支到master(已更改我的提交消息develop以反映我的更改以「更乾淨」的方式進行快速合併)。

我現在的問題:最近提交的master是一個仍然是一個從上一次合併提交,因爲我不能做一個現在FF-合併來自developmaster,自2個分支「分道揚鑣「(合併提交在develop上丟失)。

我的想法是解決這個問題,正在開發中:git rebase master,這將拉入此合併提交,然後讓我做一個git merge develop在主。 但是,這會產生一個新的提交develop(這個特定的合併提交)或將git足夠聰明,認識到這個合併提交的變化已經是develop的一部分?

回答

1

git rebase master而在develop將爲您的目的正常工作。

如果你的分支,目前是這樣的:

A-B-C-D-E <-- master 
    /
    F-G-H-I-J <-- develop 

然後他們會風是這樣的(因爲I-JE不可達的唯一位):

A-B-C-D-E <-- master 
     \ 
      I'-J' <-- develop 

這將隨後像這樣快速向前合併回主:

A-B-C-D-E-I'-J' <-- master 
0

你的方法應該允許它工作。當然,您可以通過另一種方式解決這個問題,那就是在下次合併時完全移除您的開發分支,以便在重新分配失敗的情況下掌握。然後從這個點開始分出一個新的開發主從和rebase。

在我以前的公司,我們嘗試將我們的工作流程從合併轉換爲重新綁定。但最終由於不同分支的合併而出現各種奇怪的問題。它直接從主人開始重新開發分支時感覺更清潔和更安全。