簡體   English   中英

如何禁止 Git 合並某些分支

[英]How to forbid Git merge certain branches

我需要支持 3 個版本的程序。 大多數文件在哪里

聯合(常見)但幾個文件包含每個版本的不同內容。

我可能會在 Git 中使用 4 個分支 A、B、C、D。

形成示例項目冰淇淋:

____________________________________________________
Cup.txt: { Waffle cup } – common file for all version

Filling.txt { banana } - special file for B version
Filling.txt { strawberries } - special file for C version
Filling.txt { vanilla } - special file for D version
____________________________________________________

A - 分支僅適用於全局文件 (Cup.txt)

B、C、D - 分支僅適用於 Filling.txt 文件。

對於這個策略,我只需要允許在一個方向上合並:A => B,C,D

我的問題是如何禁止在 Git 中從 B、C、D 合並到 A 分支?

如何禁止合並反向

關於源代碼,最好避免復雜的合並策略,修改 PrintBill 以便:

  • 特定於客戶端 A 和 B 的單獨內容
  • 通過選擇正確的源為客戶端 A 和客戶端 B 構建正確的可執行文件

這個想法與最初寫在下面的想法相同:避免任何復雜的合並策略。

現在,如果這種重構是不可能的,您可以嘗試聲明一個合並驅動程序,但這不會總是被調用(僅在發生沖突的情況下)


另一種方法是避免對Filling.txt進行版本控制(這樣,合並策略就不再頭疼了)。

你可以:

塗抹

首先,我不認為這真的是你想要做的。

您想禁止將B 特定的內容合並到 A 中。

但是將 B 到 A 的一般錯誤修復合並應該沒問題。

因此,您應該將 B 特定的內容保存在單獨的文件中。

無論如何,我認為您需要的是“中央服務器”上的 git pre-receive 鈎子,它可以檢查並防止添加“禁止文件”。

但請注意,如果您確實將特定於 B 的內容保存在單獨的文件中,您甚至不需要使用 git 分支來解決這個問題。 您可以使用單獨的項目,它們之間存在依賴關系。

暫無
暫無

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

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