5

有没有办法git status忽略文件​​中的某些更改?

背景

我的存储库中有一些自动生成的文件(是的,我知道通常不建议这样做,但我无权更改它)。每当我构建我的树时,这些自动生成的文件都会在其中更新状态信息(生成它们的人、时间戳等)。

当我说 时git status,我希望它对这些生成的文件运行一个过滤器,以去除这些临时状态信息。"Changed but not updated:"如果有其他真正的变化,我只希望它显示在git 的输出部分。

使用https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes.gitattributes中的方法,我可以使用简单的过滤器忽略这些状态行更改。我还想使用过滤器(或等效的东西)。git diffegrepgit statustextconv

如果合并不受任何此过滤的影响,我会更喜欢它。

4

3 回答 3

2

您还可以使用过滤器从 git 隐藏您的更改。指定“清理”过滤器将“清理”不必要的更改(将 Git 的文件版本提供给 Git),因此它不会看到更改(但它仍然可以在“git status”中列出文件)。

详细信息:让 Git 对我的更改视而不见的更好方法

另请参阅此问题的其他答案,他们也关于忽略更改。

于 2010-07-08T00:11:35.913 回答
1

一种简单的解决方案是,在要忽略更改的文件或路径上运行以下命令:

git update-index --assume-unchanged <file>

如果您想再次开始跟踪更改,请运行以下命令:

git update-index --no-assume-unchanged <file>

当您要提交更改时,您必须记住再次开始跟踪。

于 2014-01-30T15:43:57.163 回答
0

我想我会报告我一直在使用的两种解决方法:

  • 从自动生成的文件中删除状态信息。
  • git checkout origin ...对于任何没有语义更改的生成文件,有一个作为构建的一部分执行的更新程序脚本。
于 2011-02-20T04:53:17.603 回答