为什么不.gitignore跨分支机构工作?

时间:2012-08-16 07:17:12

标签: git branch git-branch gitignore

在本地Git(克隆)存储库上工作时,我创建了一个分支并在其中放置了.gitignore文件,以从git commit中排除几个目录。它工作正常,但在切换到另一个分支后,这些目录(被排除的目录)出现在它中(在不包含这些目录的分支上)。

这是正常的Git行为吗?如果是这样,避免上述问题的最佳做法是什么?

3 个答案:

答案 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的更改。