我有以下情况: 在上游(原始)服务器上,我有一个模板文件,显示程序的基本配置。 此文件必须保留在那里。
我分叉项目并希望更改模板文件,在我的遥控器上我有两个分支:master,devel。我希望更改两个文件但不提交它,因为我将来会发送合并请求,并且必须保留基本配置。
目前我尝试了3件事:
git update-index --assume-unchanged
。这对我来说听起来像是最好的解决方案,问题在于我无法在不提交的情况下更改master和devel之间的分支(Git不会允许它)。任何可能对我有帮助的建议/最佳做法?
答案 0 :(得分:0)
这是一个常见问题。您有一些配置文件或模板必须在回购中保持某种方式,但您希望能够在结帐时在本地更改它以进行测试或部署或其他任何方式。
最简单的解决方案是拥有两个文件。一个是存储库附带的标准配置/模板。这是签入的。另一个是覆盖文件。这将覆盖标准配置中的任何文件。这不会被签入,或者已经签入并留空,并添加到.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
您必须编写代码才能进行合并。