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