如何维护git中的私有变化?

时间:2012-09-06 01:38:19

标签: git project

我正在使用Successful Git branch引入的工作流程。 我对如何管理更改感到困惑,比如开发分支中的配置。

当我从master合并时,为了保持工作树的清洁,我会隐藏更改。如果我提交更改,那么当我合并回master时我应该非常小心。

那么有更好的方法来管理git中的私有变化吗?

3 个答案:

答案 0 :(得分:4)

有几种选择:

  1. 不要将私人文件置于源代码管理之下。例如,如果您需要为每个开发人员进行私有更改的config.ini,那么在存储库中创建一个带有示例设置的文件config.ini.template,然后每个开发人员都应该复制它并使用私有修改副本设置。应在config.ini

  2. 中添加.gitignore
  3. 在repo中添加config.ini并使用git update-index --assume-unchanged config.ini,这样git将忽略文件中的任何本地更改,而不是尝试提交文件。

  4. 在每个环境的repo中添加多个配置文件,例如: config-robotment.iniconfig-kan.iniconfig-produciton.ini等等。然后使用命令行参数或环境变量或类似的东西,以允许您的应用程序选择要使用的文件。

  5. 重点是 - 不要使用分支进行配置,否则在开发过程中分支/合并将总是很痛苦。

答案 1 :(得分:1)

对于配置文件,选项将在“Git: keep specific files unmerged”中恢复。

我更喜欢为每个环境(这里为每个分支)版本化不同的值文件,这样我就不必处理合并(值文件“dev.config”永远不会在master分支中修改,其中使用了值文件“master.config

我还对模板文件进行了版本控制,以便内容filter driver在结帐时生成实际的配置文件(保持私有且不是版本):

smudge clean filter driver

答案 2 :(得分:0)

创建并切换到具有不同名称的本地分支,在需要时合并上游主分支。