我可以忽略本地文件而不污染其他人的全局git配置吗?我的git状态中有未跟踪的文件是垃圾邮件,但我不想为我在本地分支中的每一个未跟踪的小文件提交git配置更改。
当前回答
如果您的repo还没有.gitignore文件,那么一个简单的解决方案是创建.gitignorefile,并在其中将.gitignor添加到要忽略的文件列表中。
其他回答
将以下行添加到.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文件添加到您的主目录中,即$home/.gitignore/~/.giti忽略。然后告诉git将该文件与命令一起使用:
git config --global core.excludesfile ~/.gitignore
这是一个普通的.gitignore文件,git在决定忽略什么时会引用它。因为它在您的主目录中,所以它只适用于您,不会污染任何project.gitignore文件。
多年来,我一直在使用这种方法,取得了很好的效果。
从相关Git文档中:
特定于特定存储库但不需要与其他相关存储库共享的模式(例如,位于存储库内部但特定于一个用户工作流的辅助文件)应进入$GIT_DIR/info/exclude文件。
.git/info/exclude文件的格式与任何.gitignore文件的格式相同。另一个选项是将core.excludesFile设置为包含全局模式的文件的名称。
注意,如果您已经有未标记的更改,则必须在编辑忽略模式后运行以下命令:
git update-index --assume-unchanged <file-list>
关于$GIT_DIR的说明:这是整个GIT手册中使用的一种符号,只是为了指示GIT存储库的路径。如果设置了环境变量,那么它将覆盖您所在的任何存储库的位置,这可能不是您想要的。
编辑:另一种方法是使用:
git update-index --skip-worktree <file-list>
反转方式:
git update-index --no-skip-worktree <file-list>
只需将路径添加到ypu希望从当前回购的任何分支上的提交中删除的文件:
取消隐藏Windows目录设置中的隐藏文件打开路径REPO_MAIN_Path/.git/info/exclude添加例如**/toExcludeFile.bat
就这样!对我来说,上面的答案太长了。KISS-保持简单的愚蠢
您有几个选项:
在工作目录中保留一个脏的(或未提交的).gitignore文件(或使用topgit或其他类似的修补工具自动应用它)。将排除项放入$GIT_DIR/info/exclude文件(如果这是特定于一棵树的)。运行git-config--global-core.excludsfile~/.gitignore,并将模式添加到~/.gigignore中。如果要忽略所有树中的某些模式,则应用此选项。例如,我将此用于.pyc和.poo文件。
此外,如果适用,请确保您使用的是模式,而不是显式枚举文件。
推荐文章
- 如何预览git-pull?
- 如何删除git历史记录中的特定修订?
- 如何获得Git存储库中的Git存储库名称?
- 当git说它正在“解析delta”时,它实际上在做什么?
- Git命令将一个文件夹移动到另一个文件夹
- 在单个文件中重新启动/撤消冲突解决方案
- Visual Studio代码如何解决合并冲突与git?
- 无法推送到远程分支,无法解析到分支
- Git:如何将数据库重置为特定的提交?
- 如何在合并期间使用Git和命令行保存本地文件或远程文件?
- 能够用一个命令推到所有git遥控器?
- 重新基于Git合并提交
- 忽略已经签入目录的内容?
- 如何从windows cmd保存git提交消息?
- (Mac) -bash: __git_ps1:命令未找到