如何在Git中忽略文件的更改而不从仓库中删除它?

3
这是情况:我们有几个配置文件,当用户克隆repo时,他们需要修改这些配置文件。这些文件的结构使得修改变得快速、简单和容易,但这意味着任何执行“git add *”或“git commit -a”的用户都会将它们带回服务器,并且已经做出了更改!
这不仅会破坏下一个人下次拉取时的事情(他每次都需要合并并处理他甚至不需要的文件的冲突),而且意味着用户很容易意外地破坏我们正在进行的持续集成测试。
我想要的是git ignore的效果(它不关心是否被更改,它不会提交它),但不必完全删除该文件。如果我们可以以某种方式强制更改文件,那就太好了。
我知道在SVN中有方法可以做到这一点,我认为Git必须有一个相当的方法。

这个线程应该会有帮助:https://dev59.com/J1zUa4cB1Zd3GeqP10-k - wkl
另一种可能性,使用强制覆盖的stash/pop - jthill
2个回答

6
git update-index --assume-unchanged <filename>

实际上,它的目的是为了提高在不太优化的文件系统上进行git操作的性能,您可以指示git假定某些文件未被触及。您可以使用它来“暂时”忽略已跟踪的文件。

您还可以查看其他人处理配置文件的替代方法,例如拥有一个模板配置文件,用户可以创建他们特定的配置文件(后者被忽略)等。


0

我会使用configfile.template,并将configfile列在.gitignore中,并提供README或其他提示进行复制和调整。设置目标configfile以执行某些合理操作(内置configfile.template等效?)如果没有配置存在(无论如何,您都需要类似的东西,所以...)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接