我可以在本地忽略文件而不会污染其他人的全局 git 配置吗?我在我的 git 状态下没有跟踪文件是垃圾邮件,但我不想为我在本地分支机构中的每个小随机未跟踪文件提交 git 配置更改。
从相关的 Git 文档 :
特定于特定存储库但不需要与其他相关存储库共享的模式(例如,存储在存储库中但特定于一个用户工作流的辅助文件)应该进入
$GIT_DIR/info/exclude
文件。
.git/info/exclude
文件的格式与任何.gitignore
文件的格式相同。另一种选择是将core.excludesFile
设置为包含全局模式的文件的名称。
请注意,如果您已经有非分段更改,则必须在编辑 ignore-patterns 后运行以下命令:
git update-index --assume-unchanged [<file>...]
注意在$GIT_DIR
:这是使用的符号遍布 git 的手册只是为了表明路径 git 仓库。如果设置了环境变量,那么它将覆盖您所在的任何回购的位置,这可能不是您想要的。
更新 :请考虑使用git update-index --skip-worktree [<file>...]
,谢谢 @danShumway!请参阅Borealid 对这两个选项的区别的解释 。
老答案:
如果您需要忽略对跟踪文件的本地更改(我们对配置文件进行了本地修改),请使用git update-index --assume-unchanged [<file>...]
。
将以下行添加到. gitconfig 文件的 [alias] 部分
ignore = update-index --assume-unchanged
unignore = update-index --no-assume-unchanged
ignored = !git ls-files -v | grep "^[[:lower:]]"
现在你可以使用git ignore my_file
忽略对本地文件的更改,并使用git unignore my_file
来停止忽略更改。 git ignored
列出了被忽略的文件。
这个答案来自http://gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html 。