我能夠在本地忽略文件而不污染其餘全部人的全局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