如何使 git 在分支之间合并时跳过一些文件

How to make git skip some files on merge between branches

我有一个 docker multi-project,其中一些文件是配置文件和 bash 脚本文件

它们指定了不同项目如何相互通信,这在生产模式或开发模式中是不同的。

我通过创建不同的分支(dev、test、preprod 和 prod)并在每个分支中使用名称相同但内容不同的文件来解决这个问题。

所以我需要让这些文件出现在 git 中,但我不希望它们覆盖分支之间的内容。我可以在 master 中有一个版本,然后在每个分支中修改它,以便它们在每次合并时产生冲突以得到警告,但这对用户来说不是很友好。

我已经阅读了 this post,但它仍然不能满足我的需求。

有什么想法吗?

由于您希望这些文件成为您的存储库的一部分,因此您不想忽略它们。

但是对 environmental-dependent 属性设置的更改不应每次都提交和合并。为此,您可以将文件放入 skip-worktree。在本地工作,需要在每个本地 git 存储库中设置。

https://compiledsuccessfully.dev/git-skip-worktree/

可能需要一些时间(合并提交的数量)将配置文件全部合并为一个,但之后您只需要在实际更改配置时注意配置即可。