我创建了一个git repo并将vim-plugins(由vundle安装)添加到其中,之后我将此repo推送到github,并将此repo克隆到另一台服务器,我发现vim-plugin的目录为空,dirs和vim-plugin目录下的文件都缺失
如何制作它:
$ make a new test user in Linux, then ( su - test )
$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle # install vundle
$ echo "
set nocompatible
filetype off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
Bundle 'gmarik/vundle'
Bundle 'Lokaltog/vim-powerline'
filetype plugin indent on
" >> .vimrc
$ vim # run vim command `:BundleInstall`
$ mkdir vimgitrepo && cd vimgitrepo && git init
$ cp -a ~/.vim/bundle .
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# bundle/
nothing added to commit but untracked files present (use "git add" to track)
$ git add .
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: bundle/vim-powerline
# new file: bundle/vundle
#
如您所见,只添加了dir。
$ git commit -m'test'
$ git push -u origin master
如果你在另一个地方克隆这个仓库,只有空目录。
答案 0 :(得分:1)
在将其推送到GitHub之前,您需要确保已添加这些文件并将其提交到本地存储库中。
例如,请参阅“GIT add vs push vs commit”。
并确保您的目录(如.vim/bundle/vim-powerline
)不为空(否则,它们不会被添加到索引中:只能对文件进行版本控制)
同时检查这些目录中的文件是否尚未被忽略(通过.gitignore
文件)
如“在git中显示忽略的文件”中所述,执行:
git clean -ndX
列出不的文件。
最后,符号链接的目录不会添加为文件。
这可以解释:
请参阅“What does git do to files that are a symbolic link?”:
git只是将链接的内容(即它链接到的文件系统对象的路径)存储在'blob'中,就像普通文件一样。
然后它在表示其包含目录的树对象中存储名称,模式和类型(包括它是一个符号链接的事实)。
答案 1 :(得分:1)
你是否正在使用vundle作为插件管理器?
我遇到了同样的问题,问题是vundle,我不知道Pathogen是否做同样的事情,克隆github存储库并将.git文件包含到插件目录中,所以目录&#39; s内容未包含在您的项目中。
我用这个序列解决了这个问题:
我的所有插件目录都已包含在内。
它能解决你的问题吗(我希望如此)?
答案 2 :(得分:0)
你可以用这个命令代替git push。 git push origin master
此外,如果您想在不同的机器上共享您的vim插件,您可以尝试另一个问题中提到的解决方案 How to share one vimrc file among multiple clients?