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


当前回答

这是一个简单的单行解决方案,用于排除本地文件。

 echo YOUR_FILE_OR_DIRECTORY >> .git/info/exclude

其他回答

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


旧答案:

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

我认为您正在寻找:

git update-index --skip-worktree FILENAME

忽略本地所做的更改

这里是http://devblog.avdi.org/2011/05/20/keep-local-modifications-in-git-tracked-files/关于这些解决方案的更多说明!

要撤消使用:

git update-index --no-skip-worktree FILENAME

只需将路径添加到ypu希望从当前回购的任何分支上的提交中删除的文件:

取消隐藏Windows目录设置中的隐藏文件打开路径REPO_MAIN_Path/.git/info/exclude添加例如**/toExcludeFile.bat

就这样!对我来说,上面的答案太长了。KISS-保持简单的愚蠢

这是一个简单的单行解决方案,用于排除本地文件。

 echo YOUR_FILE_OR_DIRECTORY >> .git/info/exclude

TL;DR-过滤输出以忽略文件


不要这样做。关于这样做的技术方法,有很好的答案。然而,我已经多次找到这个问答页面。如您所见,有多种解决方案。问题是每一个都会使git忽略文件;这可能是你现在想要的,但未来可能不会。

细节中的魔鬼是,

git将不再报告这些文件。你需要记住你使用了哪些机制。

要么将其添加到.gitignore中,要么将过滤器写入gitstatus,以主动过滤文本。每个人都会忽略该文件,但为什么忽略它的答案更为明显。包装器脚本(或命令行调用)的第二种情况非常明显地表明了您选择忽略的内容以及您的工作流是非标准的。