2016-11-22 129 views
0

我有以下情况: 在上游(原始)服务器上,我有一个模板文件,显示该程序的基本配置。 此文件必须保留在那里。在git中更改跟踪文件并允许分支更改

我分叉的项目,并希望改变模板文件,我的遥控器上我有两个分支:师傅,devel的。我希望在两个文件上都更改文件,但不要提交它,因为我将来会发送合并请求,并且必须保留基本配置。

目前我试过3两件事:

  1. 改变分支机构,并承诺(低技术解决方案)时,请注意文件不变。
  2. 使用:git update-index --assume-unchanged。这听起来像对我来说是最好的解决方案,这个问题是我不能在不提交的情况下更改master和devel之间的分支(Git不允许它)。
  3. 解开它。正如我所说这不是真正的解决方案,因为它必须留在回购。

任何建议,可以帮助我/最佳做法?

+0

你怎么可以改变分支的文件,而无需提交更改?没有意义。或者你的意思是你有两个*结账*一个已经检查出主人和一个发展?无论如何,答案是有一个本地覆盖配置文件没有提交。 – Schwern

+0

@Schwern thx的答案,所以你建议选择方法#3,这是一个问题,因为我想缺省模板出现在回购 –

回答

0

这是一个常见的问题。你有一些配置文件或者模板必须在repo中保持一定的方式,但是你希望能够在你的checkout中本地修改它以进行测试或部署等等。

最简单的解决方案是有两个文件。一个是存储库附带的标准配置/模板。这是签入。另一个是覆盖文件。这会覆盖标准配置中的任何文件。这不会被检入,或者被检入并留空,并被添加到.gitignore

例如,这里有一个登录的master.config文件和一个不是的local.config文件。

master.config 
    some: thing 
    database: 
     type: mysql 
     host: localhost 
     user: test 
     pass: test 

local.config 
    database: 
     host: production.db 
     user: production_user 
     pass: s3kr3t 

生成的配置将是两者的合并。

some: thing 
    database: 
     type: mysql 
     host: production.db 
     user: production_user 
     pass: s3kr3t 

您将不得不编写代码进行合并。