协慌网

登录 贡献 社区

如何配置 git 在本地忽略某些文件?

我可以在本地忽略文件而不会污染其他人的全局 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