如何配置git在本地忽略某些文件?

我能夠在本地忽略文件而不污染其餘全部人的全局git配置嗎? 我有處於git狀態的垃圾郵件的未跟蹤文件,但我不想爲我在本地分支機構中擁有的每一個單個隨機未跟蹤文件提交git config更改。 html


#1樓

更新 :考慮使用git update-index --skip-worktree [<file>...]代替,謝謝@danShumway! 請參閱Borealid關於這兩種選擇的區別的說明git


舊答案: 工具

若是您須要忽略對跟蹤文件的本地更改(咱們對配置文件進行了本地修改),請使用git update-index --assume-unchanged [<file>...]spa


#2樓

相關的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倉庫。 若是設置了環境變量,那麼它將覆蓋您所在的任何存儲庫的位置,而這可能不是您想要的。 文檔


#3樓

您有幾種選擇: get

  • 在工做目錄中保留一個骯髒的(或未提交的) .gitignore文件(或使用topgit或其餘一些此類補丁工具自動應用該文件)。
  • 若是$GIT_DIR/info/exclude特定於一棵樹,則將$GIT_DIR/info/exclude放入$GIT_DIR/info/exclude文件中。
  • 運行git config --global core.excludesfile ~/.gitignore並將模式添加到~/.gitignore 。 若是要忽略全部樹中的某些模式,則此選項適用。 例如,我將其用於.pyc.pyo文件。

另外,請確保您使用的是模式,而不是顯式枚舉文件(若是適用)。


#4樓

將如下行添加到.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


#5樓

我認爲您正在尋找:

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
相關文章
相關標籤/搜索