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