我可以忽略本地文件而不污染其他人的全局git配置吗?我的git状态中有未跟踪的文件是垃圾邮件,但我不想为我在本地分支中的每一个未跟踪的小文件提交git配置更改。


当前回答

更新:考虑使用git更新索引--跳过工作树[<file>…],谢谢@danShumway!参见Borealid对两个选项差异的解释。


旧答案:

如果您需要忽略跟踪文件的本地更改(我们对配置文件进行了本地修改),请使用git更新索引--假设未更改[<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.

您有几个选项:

在工作目录中保留一个脏的(或未提交的).gitignore文件(或使用topgit或其他类似的修补工具自动应用它)。将排除项放入$GIT_DIR/info/exclude文件(如果这是特定于一棵树的)。运行git-config--global-core.excludsfile~/.gitignore,并将模式添加到~/.gigignore中。如果要忽略所有树中的某些模式,则应用此选项。例如,我将此用于.pyc和.poo文件。

此外,如果适用,请确保您使用的是模式,而不是显式枚举文件。

如果您的repo还没有.gitignore文件,那么一个简单的解决方案是创建.gitignorefile,并在其中将.gitignor添加到要忽略的文件列表中。

在项目存储库中,接受的答案对我来说很有用。git在排除文件中添加了以下内容:

wp内容/插件

wp内容/上传

对于希望忽略子模块中本地文件的任何人:

使用与.gitignore文件相同的格式编辑父repo/.git/modules/my子模块/info/exclude。