忽略git存储库中跟踪文件中的更改

时间:2018-10-02 14:20:17

标签: git gitignore

也许是重复的,但是没有找到这个问题的答案。

我们有一个存储库,该存储库包含一些跟踪文件,例如“ .gitignore”文件以及“ conf”文件夹。

我想排除对该文件和文件夹的跟踪,因为它包含的更改仅适用于我的计算机,并且我不想通过将更改提交到这些配置文件来破坏其他人的设置。

在“ .gitignore”中添加此文件和文件夹无济于事,因为它仍在跟踪中。

如何避免在这些文件中跟踪这些更改?

1 个答案:

答案 0 :(得分:0)

您要设置标志assume-unchanged。为此,您可以使用git update-index

git update-index --assume-unchanged .gitignore

稍后,如果您要取消设置标志以提交对fil的更改,请使用

git update-index --no-assume-unchanged .gitignore

有关更多信息,请参阅git doc

  

-[无]假设不变

     

指定此标志时,为路径记录的对象名称不会更新。相反,此选项设置/取消“假设   路径的“不变”位。当“假定不变”位打开时,   用户承诺不会更改文件,并允许Git假定   工作树文件与索引中记录的文件匹配。如果你   要更改工作树文件,您需要取消设置   告诉吉特。在使用大型项目​​时,这有时会有所帮助   lstat(2)系统调用非常慢的文件系统(例如cifs)。

     

如果需要修改索引中的该文件,Git将失败(正常)。合并提交时;因此,如果   假定未跟踪的文件在上游已更改,则需要处理   手动情况。

编辑

要将标志应用于文件夹,您需要对文件夹中的每个文件执行命令。有关自动执行此任务的提示,请参见this answer(如果您的文件夹包含许多文件)。 示例:

cd /path/to/the/folder
git ls-files -z | xargs -0 git update-index --assume-unchanged