在本地Git(克隆)存儲庫上工作時,我創建了一個分支,並在其中放置了.gitignore
文件以從git commit
中排除幾個目錄。它工作得很好,但切換到不同的分支後,那些目錄(被排除的目錄)出現在它(不包括這些目錄的分支上)。爲什麼不.gitignore跨分支機構工作?
這是一個正常的Git行爲?如果是這樣,避免上述問題的最佳做法是什麼?
在本地Git(克隆)存儲庫上工作時,我創建了一個分支,並在其中放置了.gitignore
文件以從git commit
中排除幾個目錄。它工作得很好,但切換到不同的分支後,那些目錄(被排除的目錄)出現在它(不包括這些目錄的分支上)。爲什麼不.gitignore跨分支機構工作?
這是一個正常的Git行爲?如果是這樣,避免上述問題的最佳做法是什麼?
.gitignore
文件與存儲庫中的文件一樣。因此,如果您創建一個新的.gitignore
文件,將其提交到一個分支,然後切換到另一個分支,.gitignore
文件將消失。這個是正常的。
當您從分支A移動到分支B時,應該從該分支中已經提交的A發生更改。
還有三個其他位置可以指定忽略的文件。從man gitignore
(我排除的CLI之一,因爲它是唯一相關的管道命令):如果你想全局忽略文件,使用第二
o Patterns read from $GIT_DIR/info/exclude.
o Patterns read from the file specified by the configuration variable core.excludesfile.
。創建~/.gitignore
並在~/.gitconfig
指定:
git config --global core.excludesfile ~/.gitignore
我只會用這個爲編輯交換文件和.DS_Store
等的建議。應該在存儲庫級別指定存儲庫特定的忽略文件。另外,當您將文件添加到.gitignore
時,請不要忘記運行git rm --cached
。
我指的是**排除的目錄**,它們出現在「新」分支中,它們是在「舊」分支上創建的。 '.gitignore'文件不會出現在「新建」分支中。 – MrRoth 2012-08-16 07:24:57
我不確定我的理解。如果這些目錄尚未添加到存儲庫,那麼Git不會觸及它們。所以當你切換分支時,這些目錄仍然存在,但是另一個分支上缺少'.gitignore'會使這些目錄在'git status'中顯示爲untracked。 – 2012-08-16 07:29:59