我正在使用Success Git branch介绍的工作流程。我对如何管理更改感到困惑,例如开发分支中的配置。
当我从 master 合并时,为了保持工作树的清洁,我将更改存储起来。如果我提交更改,当我合并回 master 时我应该非常小心。
那么有没有更好的方法来管理 git 中的私有更改?
我正在使用Success Git branch介绍的工作流程。我对如何管理更改感到困惑,例如开发分支中的配置。
当我从 master 合并时,为了保持工作树的清洁,我将更改存储起来。如果我提交更改,当我合并回 master 时我应该非常小心。
那么有没有更好的方法来管理 git 中的私有更改?
有几种选择:
不要将私有文件置于源代码控制之下。例如,如果您需要config.ini
为每个开发人员进行私有更改,然后config.ini.template
在存储库中创建一个包含示例设置的文件,那么每个开发人员都应该制作一个副本并使用私有设置修改该副本。config.ini
应该添加.gitignore
到.
config.ini
在 repo 中添加并使用git update-index --assume-unchanged config.ini
,以便 git 忽略文件中的任何本地更改,而不是尝试提交文件。
在 repo 中为每个环境添加几个配置文件,例如config-robotment.ini
,config-kan.ini
等等config-produciton.ini
。然后使用命令行参数、环境变量或类似的东西来让您的应用程序选择要使用的文件。
关键是 - 不要使用分支进行配置,否则在开发过程中分支/合并总是很痛苦。
对于配置文件,选择在“ Git:keep specific files unmerged ”中恢复。
我更喜欢为每个环境(这里为每个分支)对不同的值文件进行版本控制,这样我就不必处理合并(值文件“ dev.config
”永远不会在主分支中被修改,其中使用值文件“ master.config
”)
我还对模板文件进行版本控制,以便内容过滤器驱动程序在分支结帐时生成实际的配置文件(保持私有而不是版本):
创建并切换到具有不同名称的本地分支,在需要时合并上游主分支。