如何在不从repo中删除文件的情况下停止跟踪文件

bgc*_*ode 35 git

我有一个配置文件,我想保留在远程存储库中,但我不想在我的计算机上跟踪它的更改.将它添加到.gitignore并不能解决问题.

我不想跟踪更改的原因是因为根据其环境,它们应该在计算机之间有所不同.

gra*_*hus 84

如果要暂时停止跟踪文件,仍可以使用

git update-index --assume-unchanged <file>
// track changes again :
git update-index --no-assume-unchanged <file>
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,`git reset --hard`也会影响这些文件,所以如果为本地配置文件选择这种方法,就必须记住,当调用`git reset --hard时,它们仍会被重置并且它们的本地更改会丢失`. (3认同)

cdh*_*wie 10

如果是这种情况,那么你根本不应该对文件进行版本控制; 你应该版本化该文件的模板.例如,如果配置文件是,foo/config.txt那么您应该foo/config.txt.template在存储库中使用示例(或空白)配置设置进行版本控制. foo/config.txt根本不应该在存储库中,应该被忽略.gitignore.

然后,在一个新的克隆,你只要复制foo/config.txt.templatefoo/config.txt并改变相应的设置.

  • @babonk:配置应该是版本化的,但它们不一定必须与您的代码一起进行版本控制.它们可以在生产系统上进行版本控制.如果使用您的代码,您可以将它放在foo/production-config/config.txt与foo/dev-config/config.txt中的dev一个,它使用cdhowie建议的模板. (2认同)