本地仓库的嵌套文件夹(非子模块)中的git子模块出现问题

时间:2014-12-31 18:57:54

标签: git vim github git-submodules

我经常发现我的理解远比我想的要少得多......特别是当它对git和github来说时。我再次遇到这种情况,并希望有人可以提供帮助。

背景: 这一切都在Windows 7中,PowerShell v4作为我的cli。

我长期将我的vim配置保存在我的本地文件系统中的〜\ .vim文件夹中(管理〜\ vimfiles,〜\ _vimrc等的符号链接)和github中的" .vimrc&# 34;存储库,通过病原体管理我的插件,并将它们作为子模块添加到repo中。只要我记得在添加新插件之前刷新我的memnory,一切都很顺利。

但我最近决定将所有最重要的配置文件保存在本地〜\ .dotfiles文件夹中,并将github保存在类似名称的repo中(再次使用相应的符号链接来管理)。

我以为我已经把它全部搞砸了,准备好了,直到我尝试将表格插件添加到我的vim配置中。

第一个错误最初只是从github克隆表格回购而不是将其添加为子模块。第二个错误是没有查找如何从我当地的仓库中正确删除克隆的回购。也许我做错了并导致了我后续的问题(我想我刚刚删除了〜.dotfiles.vim \ bundle中的表格文件夹)

无论如何,在删除克隆的插件repo文件夹后,我尝试添加子模块并将事情炸毁,如下面的记录所示:

(note 1:    I originally just cloned the tabular repo (by mistake). That worked
            perfectly but perhaps I didn't remove the cloned repo correctly)
(note 2:    currently in ~\.dotfiles folder)

---<TRANSCRIPT>---
13:11:44|OBERON|316|# git submodule add git://github.com/godlygeek/tabular .vim/bundle/tabular$
fatal: Not a git repository: ../.git/modules/.vim/bundle/tabular$
Unable to checkout submodule '.vim/bundle/tabular'$

13:13:44|OBERON|318|# gci$
    Directory: C:\Users\arley.dealey\.dotfiles$
$
Mode                LastWriteTime     Length Name$
----                -------------     ------ ----$
d----        12/31/2014   1:12 PM            .git$
d----        12/30/2014   4:41 PM            .vim$
-a---          4/4/2014   4:46 PM       6304 .bashrc$
-a---        12/28/2014  11:01 AM       1328 .bash_profile$
-a---        12/28/2014  11:01 AM         10 .digrc$
-a---        12/28/2014  11:01 AM       1548 .inputrc$
-a---        12/28/2014  11:01 AM       1689 .pentadactylrc$
-a---        12/31/2014  10:47 AM      11687 .sig-library.txt$
-a---        12/31/2014  11:20 AM       2150 README.md$
$
13:13:50|OBERON|319|# git submodule add git://github.com/godlygeek/tabular .vim/bundle/tabular$
The following path is ignored by one of your .gitignore files:$
.vim/bundle/tabular$
Use -f if you really want to add it.$

13:15:11|OBERON|320|# git submodule add -f git://github.com/godlygeek/tabular .vim/bundle/tabular$
Adding existing repo at '.vim/bundle/tabular' to the index$
fatal: Not a git repository: .vim/bundle/tabular/../.git/modules/.vim/bundle/tabular$
Failed to add submodule '.vim/bundle/tabular'$

13:15:30|OBERON|321|# gci .vim/bundle$
    Directory: C:\Users\arley.dealey\.dotfiles\.vim\bundle$
$
Mode                LastWriteTime     Length Name$
----                -------------     ------ ----$
d----        12/29/2014   9:31 PM            airline$
d----        12/29/2014   9:31 PM            colorscheme-switcher$
d----        12/29/2014   9:31 PM            cs-solarized$
d----        12/29/2014   9:32 PM            fugitive$
d----        12/29/2014   9:32 PM            indentLine$
d----        12/29/2014   9:33 PM            pathogen$
d----        12/29/2014   9:33 PM            surround$
d----        12/31/2014   1:12 PM            tabular$
d----        12/29/2014   9:33 PM            vim-misc$
---<TRANSCRIPT>---

(注3:即使子模块添加失败,也会创建表格文件夹DID)

所以现在我有点糊涂,不知道下一步该做什么。

帮助?

[编辑] 嗯......我可能已经比我想象的还要糟糕。尝试一个简单的&#34; git add。&#34;从本地存储库的根文件夹现在得到这个:

16:59:06|OBERON|355|# git add .
fatal: Not a git repository: .vim/bundle/tabular/../.git/modules/.vim/bundle/tabular

查看错误消息中的路径... WTF?

[编辑] 如果有人试图跟进并稍微迷失,这里有一棵树 .dotfiles文件夹heirarchy的前三个级别的图表:

17:35:50|OBERON|387|# tree ~\.dotfiles
.vim
├── README.md
├── autoload
│   └── pathogen.vim
├── bundle
│   ├── airline
│   ├── colorscheme-switcher
│   ├── cs-solarized
│   ├── fugitive
│   ├── indentLine
│   ├── pathogen
│   ├── surround
│   ├── tabular
│   └── vim-misc
├── colors
├── compiler
├── doc
├── ftdetect
├── ftplugin
├── indent
├── keymap
├── plugin
└── syntax
PowerShell
├── Microsoft.PowerShell_profile.ps1
├── PeterProvost_profile.ps1
├── nad-profile.ps1
└── profile.ps1
.bashrc
.bash_profile
.digrc
.inputrc
.pentadactylrc
.sig-library.txt
README.md

1 个答案:

答案 0 :(得分:1)

我先试试:

  • 再次克隆dotfile repo
  • 检查.vim/bundle/tabular当前是否被忽略

    git check-ignore -v -- .vim/bundle/tabular
    

(如果忽略,修改,添加并提交相应的.gitignore

  • 添加子模块

    git submodule add https://github.com/godlygeek/tabular .vim/bundle/tabular