我能够在本地忽略文件而不污染其余全部人的全局git配置吗? 我有处于git状态的垃圾邮件的未跟踪文件,但我不想为我在本地分支机构中拥有的每一个单个随机未跟踪文件提交git config更改。 html
更新 :考虑使用git update-index --skip-worktree [<file>...]
代替,谢谢@danShumway! 请参阅Borealid关于这两种选择的区别的说明 。 git
旧答案: 工具
若是您须要忽略对跟踪文件的本地更改(咱们对配置文件进行了本地修改),请使用git update-index --assume-unchanged [<file>...]
。 spa
从相关的Git文档中 : code
特定于特定存储库但不须要与其余相关存储库共享的模式(例如,位于存储库内但特定于一个用户工做流程的辅助文件)应放入
$GIT_DIR/info/exclude
文件。 htm
.git/info/exclude
文件与任何.gitignore
文件具备相同的格式。 另外一个选项是将core.excludesFile
设置为包含全局模式的文件的名称。 blog
请注意,若是您已经取消暂存更改,则必须在编辑忽略模式以后运行如下命令: ip
git update-index --assume-unchanged [<file>...]
注意在$GIT_DIR
:这是一个符号使用遍及 git的手册只是为了代表路径git仓库。 若是设置了环境变量,那么它将覆盖您所在的任何存储库的位置,而这可能不是您想要的。 文档
您有几种选择: get
.gitignore
文件(或使用topgit或其余一些此类补丁工具自动应用该文件)。 $GIT_DIR/info/exclude
特定于一棵树,则将$GIT_DIR/info/exclude
放入$GIT_DIR/info/exclude
文件中。 git config --global core.excludesfile ~/.gitignore
并将模式添加到~/.gitignore
。 若是要忽略全部树中的某些模式,则此选项适用。 例如,我将其用于.pyc
和.pyo
文件。 另外,请确保您使用的是模式,而不是显式枚举文件(若是适用)。
将如下行添加到.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 。
我认为您正在寻找:
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