240

我在存储库中有一些跟踪文件,这些文件在构建代码时会自动修改。我不想取消跟踪它们,我只是不希望它们显示为已修改,并且我不希望它们在我 git add 时上演。

这可能吗?

4

3 回答 3

365

当然。

git update-index --assume-unchanged [<file> ...]

要撤消并重新开始跟踪:

git update-index --no-assume-unchanged [<file> ...]
于 2012-05-25T13:57:52.607 回答
8

另一种方法(来自 Seth Robertson 现在已删除的答案,但我发现它很有帮助,因此将其复活)是维护一个“跟踪”模板文件,然后拥有它的本地未跟踪版本,例如:“config.sample.ini”或“ config.ini.template”参见https://gist.github.com/canton7/1423106获取完整示例。

如果文件在 git 等中发生更改,则不会有任何问题,您可以在本地未跟踪文件上使用 .gitignore (最终)。

于 2017-01-30T16:55:44.983 回答
4

在过滤器命令中使用 git 属性和 %f 的另一种解决方案:

git config filter.orig.clean "cat %f.orig"
cp filename filename.orig
echo "filename filter=orig" >> .git/info/attributes
echo "filename.orig" >> .git/info/exclude
于 2014-05-05T11:22:19.013 回答