2

我无法让我的 Git .gitignore 文件忽略包含我的 Vim 插件包目录的目录。我在 macOS Mojave 上运行 Git 2.22.0 版。我运行 Vim 8.0 并使用 Vundle 来管理我的 Vim 插件。我的 Vim 插件目录结构如下所示:

/Users/smith/dotfiles/.vim/bundle/Vundle.vim
/Users/smith/dotfiles/.vim/bundle/ansible-vim
/Users/smith/dotfiles/ctrlp.vim
...

我的 Git 目录的根目录是 /Users/smith/dotfiles。

这些捆绑目录中的每一个都包含自己的 Git 存储库,因此当我运行“git status”时,每个目录都会看到类似这样的内容:

modified:   .gitignore
modified:   .vim/bundle/Vundle.vim (new commits)
...

我不知道如何使用 Vundle 以忽略每个包的 .git 目录的方式安装这些包。也许我应该使用子模块,但我没有。

我不认为我真的需要跟踪这些捆绑目录并且宁愿让 Git 忽略它们。但无论我在 .gitignore 文件中放了什么,每当我运行“git status”时,我仍然会看到这些包含新提交的捆绑目录。

这是我的 .gitignore:

other/ipythop/profile_default/history.sqlite
.DS_Store
.vim/.netrwhist
.vim/bundle/
*.*.swp

我尝试了很多事情:

.vim/bundle/
.vim/bundle
.vim/bundle/*

我什至尝试像这样包含每个目录,但这并不妨碍它们出现:

.vim/bundle/Vundle.vim

我究竟做错了什么?

4

1 回答 1

3

从您提供的输出来看,您实际上正在使用子模块。(new commits)文本仅针对子模块显示。您可能没有文件.gitmodules,因为子模块并不严格需要它们,尽管通常建议使用它们。

如果您不想将这些作为子模块进行跟踪,则可以运行git rm以将其删除,但请注意,这可能会删除那里的 Git 存储库,因此请备份您想要的任何内容。然后你可以将这些路径添加到你的.gitignore文件中,Git 会正确地忽略它们。Git 现在并没有忽略它们,因为.gitignore如果它们已经被跟踪,将它们添加到什么都不做。

如果要将它们添加为子模块,则可以创建一个空.gitmodules文件并运行git submodule add(如果需要,可能使用-f参数)为它们设置遥控器。

于 2019-08-15T23:40:37.800 回答