如何使 git 在分支之间合并时跳过一些文件
How to make git skip some files on merge between branches
我有一个 docker multi-project,其中一些文件是配置文件和 bash 脚本文件
- .env(例如 facebook_app_id=abcd)
- build.sh(例如深度为 1 的结帐项目)
- install.sh
它们指定了不同项目如何相互通信,这在生产模式或开发模式中是不同的。
我通过创建不同的分支(dev、test、preprod 和 prod)并在每个分支中使用名称相同但内容不同的文件来解决这个问题。
所以我需要让这些文件出现在 git 中,但我不希望它们覆盖分支之间的内容。我可以在 master 中有一个版本,然后在每个分支中修改它,以便它们在每次合并时产生冲突以得到警告,但这对用户来说不是很友好。
我已经阅读了 this post,但它仍然不能满足我的需求。
有什么想法吗?
由于您希望这些文件成为您的存储库的一部分,因此您不想忽略它们。
但是对 environmental-dependent 属性设置的更改不应每次都提交和合并。为此,您可以将文件放入 skip-worktree
。在本地工作,需要在每个本地 git 存储库中设置。
https://compiledsuccessfully.dev/git-skip-worktree/
可能需要一些时间(合并提交的数量)将配置文件全部合并为一个,但之后您只需要在实际更改配置时注意配置即可。
我有一个 docker multi-project,其中一些文件是配置文件和 bash 脚本文件
- .env(例如 facebook_app_id=abcd)
- build.sh(例如深度为 1 的结帐项目)
- install.sh
它们指定了不同项目如何相互通信,这在生产模式或开发模式中是不同的。
我通过创建不同的分支(dev、test、preprod 和 prod)并在每个分支中使用名称相同但内容不同的文件来解决这个问题。
所以我需要让这些文件出现在 git 中,但我不希望它们覆盖分支之间的内容。我可以在 master 中有一个版本,然后在每个分支中修改它,以便它们在每次合并时产生冲突以得到警告,但这对用户来说不是很友好。
我已经阅读了 this post,但它仍然不能满足我的需求。
有什么想法吗?
由于您希望这些文件成为您的存储库的一部分,因此您不想忽略它们。
但是对 environmental-dependent 属性设置的更改不应每次都提交和合并。为此,您可以将文件放入 skip-worktree
。在本地工作,需要在每个本地 git 存储库中设置。
https://compiledsuccessfully.dev/git-skip-worktree/
可能需要一些时间(合并提交的数量)将配置文件全部合并为一个,但之后您只需要在实际更改配置时注意配置即可。