繁体   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