[英]Git: How to ignore changes to a tracked file?
我的项目中有一个带有数据库设置的文件,我已将其设置为一些默认值。 该文件由Git
跟踪并签入。由于将使用各种开发人员机器使用不同的值来编辑此文件,因此有没有办法让我告诉Git
忽略对此文件的新更改?
我尝试将文件添加到.gitignore
文件,但是由于已跟踪文件,因此不会忽略该文件。 在其他情况下这还不错,但是我想知道是否可以在这里做些什么?
我建议对源代码控制文件的命名与其实际的预期名称不同。 例如,如果文件通常名为config.json
,则将示例文件命名为config.json.dist
并提交该文件。 然后将config.json
添加到您的.gitignore
文件中。 您的开发人员只需在克隆后简单地cp config.json.dist config.json
,然后根据需要对其进行编辑,即可进行后续提交,而不必担心意外更改默认文件或忘记一直打开和关闭某些设置。
您甚至可以编辑代码以首先搜索config.json
,如果不存在,则退回到config.json.dist
。 这将使开发人员甚至无需执行复制步骤即可工作。 (这是PHPUnit的工作方式。)
为此,可以使用git update-index --skip-worktree FILE
。
它与--assume-unchanged
相似,但是与--assume-unchanged
不同, 它不仅仅是一个不可预测的性能技巧 。
要取消--skip-worktree
效果并取消设置标志,请使用--no-skip-worktree
。
git pull
时,您可能会遇到冲突。 ( 更多详细信息 ) 您可以使用git update-index --assume-unchanged <file>
如果要再次跟踪它,请使用git update-index --no-assume-unchanged <file>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.