gitリポジトリを使用してドットファイルを管理していますが、サブモジュールを正しく機能させるのに最も苦労しています(ほとんどの.vimには多くの外部プラグインがあります)
実行するエイリアスcgitがあります(関連するかどうかはわかりません)。aliascgit='GIT_DIR = / home / myuser / .config-git GIT_WORK_TREE = / home /myuser/。ギット'"
したがって、cgit pullを使用してリポジトリをプルすることはできますが、サブモジュールをチェックアウト/更新することはできません。
$ cgit submodule status
-9895285042a2fd5691b2f6582aa979e4d1bdffea .vim/bundle/ack
-e9267044261481fbb6717b482c2f3811eb61b409 .vim/bundle/command-t
<snip>
$ cgit submodule init
$ cgit submodule update
fatal: working tree '/home/myuser/.' already exists.
Clone of 'https://github.com/mileszs/ack.vim.git' into submodule path '.vim/bundle/ack' failed
$
その特定のディレクトリを削除して再試行しましたが、爆弾が発生しました。私の.gitmodulesには/home/myuser/がありません。.config-git / configにもホームディレクトリへの参照がないため、途方に暮れています。それが助けになるなら、私のバージョンのgitは1.7.4.1です
ありがとう!
アップデート
最初は、gitサブモジュールが環境変数を受け入れなかった(他のgitコマンドは受け入れていた)という奇妙なバグだったようですが、コマンドライン引数を渡す必要がありました。これで、クローンが機能し、文句を言うだけです(ack構成を手動で修正しました)
Cloning into '.vim/bundle/command-t'...
remote: Counting objects: 2659, done.
remote: Compressing objects: 100% (1089/1089), done.
remote: Total 2659 (delta 1453), reused 2524 (delta 1325)
Receiving objects: 100% (2659/2659), 447.42 KiB, done.
Resolving deltas: 100% (1453/1453), done.
fatal: Could not chdir to '../../../../../../../nfs_mounts/home/myuser/.vim/bundle/command-t': No such file or directory
そして、〜/ .config-git / modules / .vim / ack / configを見ると、次のように表示されます。
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
worktree = ../../../../../../../nfs_mounts/home/myuser/.vim/bundle/command-t
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://github.com/wincent/Command-T.git
[branch "master"]
remote = origin
merge = refs/heads/master
しかし、そのワークツリーを「ls」すると、そこにあるように見えます。すべての../を削除してから、もう一度gitを試してみてください。