我在谷歌上搜索了更多,我想我已经找到了替代品乌龟SVNignore-on-commit更改列表 http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-commit.html#tsvn-dug-commit-ignore我在上面的评论中提到的用例。有问题的命令是git update-index --assume-unchanged <path/name>
。 Git 帮助中有这样的说法:
--[no-]假设不变
当指定这些标志时,为路径记录的对象名称不会更新。相反,这些选项设置并
取消设置路径的“假设不变”位。当“假设不变”位打开时,Git 停止检查工作
树文件可能的修改,因此您需要手动取消设置该位以在更改工作树时通知 Git
文件。当在 lstat(2) 系统调用非常慢的文件系统上处理大型项目时,这有时会很有帮助
(例如 CIF)。
此选项还可以用作粗文件级机制来忽略跟踪文件中未提交的更改(类似于
.gitignore 对未跟踪的文件做了什么)。如果需要修改索引中的此文件,Git 将(优雅地)失败
例如合并到提交时;因此,如果假定的未跟踪文件在上游发生更改,您将需要处理
手动情况。
我找到了该选项的解释Nick Quaranto 的 GitReady 博客 http://gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html,其中包括以下内容:
显然,有很多注意事项与此相关。如果你git add
直接添加文件,它将被添加到索引中。启用此标志的合并提交将导致合并正常失败,因此您可以手动处理它。
但这对我来说只是成功的一半。下一步是了解您忽略了什么(并希望记住原因)。这是由这个方便的评论 https://stackoverflow.com/questions/2363197/can-i-get-a-list-of-files-marked-assume-unchanged#comment8790168_2363495作者:Abe Voelker,关于一个恰当命名的问题。只需编辑您的.gitconfig
带有片段的文件
[alias]
ignored = !git ls-files -v | grep "^[[:lower:]]"
不要添加[alias]
位(如果它已存在于您的文件中)。现在git ignored
会告诉你这样的事情:
h configs/environment/local.php
h configs/logging/log4php.xml
您可以使用别名更进一步ignore
and unignore
包含以下几行:
ignore = update-index --assume-unchanged
unignore = update-index --no-assume-unchanged