我可以忽略本地文件而不污染其他人的全局git配置吗?我的git状态中有未跟踪的文件是垃圾邮件,但我不想为我在本地分支中的每一个未跟踪的小文件提交git配置更改。
当前回答
您可以简单地将.gitignore文件添加到您的主目录中,即$home/.gitignore/~/.giti忽略。然后告诉git将该文件与命令一起使用:
git config --global core.excludesfile ~/.gitignore
这是一个普通的.gitignore文件,git在决定忽略什么时会引用它。因为它在您的主目录中,所以它只适用于您,不会污染任何project.gitignore文件。
多年来,我一直在使用这种方法,取得了很好的效果。
其他回答
TL;DR-过滤输出以忽略文件
不要这样做。关于这样做的技术方法,有很好的答案。然而,我已经多次找到这个问答页面。如您所见,有多种解决方案。问题是每一个都会使git忽略文件;这可能是你现在想要的,但未来可能不会。
细节中的魔鬼是,
git将不再报告这些文件。你需要记住你使用了哪些机制。
要么将其添加到.gitignore中,要么将过滤器写入gitstatus,以主动过滤文本。每个人都会忽略该文件,但为什么忽略它的答案更为明显。包装器脚本(或命令行调用)的第二种情况非常明显地表明了您选择忽略的内容以及您的工作流是非标准的。
如果您的repo还没有.gitignore文件,那么一个简单的解决方案是创建.gitignorefile,并在其中将.gitignor添加到要忽略的文件列表中。
我认为您正在寻找:
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
这是一个简单的单行解决方案,用于排除本地文件。
echo YOUR_FILE_OR_DIRECTORY >> .git/info/exclude
对于希望忽略子模块中本地文件的任何人:
使用与.gitignore文件相同的格式编辑父repo/.git/modules/my子模块/info/exclude。
推荐文章
- 如何设置一个git项目使用外部回购子模块?
- Git同时在两个分支上工作
- 如何在Visual Studio中删除未推送的外向提交?
- Git在两个不同的文件之间的差异
- 我如何使用vimdiff来解决git合并冲突?
- 如何将更改提交到另一个预先存在的分支
- 为什么使用'git rm'来删除文件而不是'rm'?
- 我如何安装imagemagick与自制?
- 致命:git-write-tree:错误构建树
- Git克隆远程存储库的特定版本
- git隐藏的意图用例是什么?
- 从远程Git存储库检索特定的提交
- 如何配置git bash命令行补全?
- 我如何迫使git拉覆盖每一个拉上的一切?
- 撤销“git add <dir>”?