在本地Git(克隆)存储库上工作时,我创建了一个分支并在其中放置了.gitignore
文件,以从git commit
中排除几个目录。它工作正常,但在切换到另一个分支后,这些目录(被排除的目录)出现在它中(在不包含这些目录的分支上)。
这是正常的Git行为吗?如果是这样,避免上述问题的最佳做法是什么?
答案 0 :(得分:6)
.gitignore
文件就像存储库中的文件一样。因此,如果您创建一个新的.gitignore
文件,将其提交到一个分支,然后切换到另一个分支,.gitignore
文件将消失。这很正常。
答案 1 :(得分:2)
您可以指定三个其他位置忽略文件。来自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
等。应在存储库级别指定特定于存储库的忽略文件。另外,当您将文件添加到曾被跟踪过的git rm --cached
时,请不要忘记运行.gitignore
。
答案 2 :(得分:0)
当您从分支A移动到分支B时,您应该已经在该分支中已经提交了A的更改。