Py学习  »  Git

忽略Git存储库中跟踪文件的更改[重复]

Xeizzen • 5 年前 • 230 次点击  

可能是副本,但还没有找到这个问题的答案。

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

我希望排除跟踪此文件和文件夹,因为其中包含的更改仅在我的计算机上有效,并且我不希望通过将更改提交到这些配置文件来中断其他人的设置。

在“.gitignore”中添加此文件和文件夹没有帮助,因为它仍在被跟踪。

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30508
 
230 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Antwane
Reply   •   1 楼
Antwane    5 年前

你想要的是设置旗子 assume-unchanged . 你可以使用 git update-index 为此目的:

git update-index --assume-unchanged .gitignore

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

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

有关详细信息,请参阅 git doc :

--[否-]假设不变

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

如果需要在索引中修改此文件(例如在提交中合并时),Git将失败(优雅地);因此,如果 假设未跟踪的文件在上游更改,则需要处理 情况是手动的。

编辑

要在文件夹上应用标记,需要对文件夹中的每个文件执行命令。见 this answer 有关自动执行此任务的提示(如果文件夹包含多个文件)。 例子:

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