簡體   English   中英

Git:僅在將外部分支合並到主分支時防止快進合並

[英]Git: Prevent fast-forward merges only when merging external branches into master

為了便於查看功能分支何時合並為主分支,可以在將其功能分支合並到主分支時使用Git的--no-ff選項。

無需鍵入--no-ff即可完成此操作的一種方法是完全禁用快速合並到master:

git config branch.master.mergeoptions --no-ff

但是,這很笨拙,因為當簡單地將master中的上游更改合並到master的本地副本時,它也會阻止快進合並(為正常的git pull創建合並提交)。

有沒有辦法配置Git以防止在將功能分支合並到主服務器時快速合並到主服務器中 ,以便在從主服務器執行git pull時允許快 ,但是在合並功能分支時始終會創建合並提交? 或明確使用--no-ff實現此目的的唯一方法?

注意:不存在預合並掛鈎。
它於2008年推出,並受到批評 (因為控件最好在服務器上實現(使用更新掛鈎)。
它正在重新引入( 2012年9月

並且在git merge完成的自動提交時不會運行pre / post-commit掛鈎

所以:

  • 你是否在開發人員正在推動的git服務器上安裝了一個更新掛鈎(但那時他們可能已經太晚了,因為他們意識到他們快速轉發了一個功能分支)
  • 或者你編寫(並分發和維護......)一個git-merge包裝器,它將在本地repo級別執行該控制。

話雖如此,正如我在“ 快速前進時使用拉動和非拉動時拉動 ”中所提到的, 使用--no-ff有其優點,因為它不會破壞git bisectgit blame
因此,某個功能的開發人員可能希望重新組織他/她的功能提交(如果有太多這些功能,則將它們壓縮一點),然后在主分支中快進它們(而不是創建一個巨大的提交)。
有關更多信息,請參閱“ 了解Git工作流程 ”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM