Gitの最近の変更により、サブモジュール使用時に.git
ディレクトリの処理方法が変更されました。 サブモジュールごとに1つずつ.git
を持つ代わりに、すべてが現在ルートレベルの.git
ディレクトリ(サブモジュールを含む作業コピーに対応するディレクトリ)にあります。サブモジュールを含むgit作業コピーの移動
次に、各サブモジュールで、.git
ディレクトリの新しい場所を指すファイルが作成されます。 my projectで
、私は次の.gitmodules
のファイルがあります:私は現在、Gitの1.8.1.5を使用しています
$ cat cmake/.git
gitdir: /home/moulard/profiles/default-x86_64-linux-ubuntu-12.04.1/src/unstable/roboptim/roboptim-core/.git/modules/cmake
:
[submodule "tests/shared-tests"]
path = tests/shared-tests
url = git://github.com/roboptim/roboptim-shared-tests.git
[submodule "cmake"]
path = cmake
url = git://github.com/jrl-umi3218/jrl-cmakemodules.git
私はgit clone --recursive
を行うと、私はそれから入手し。
私の質問は以下のとおりです。
- この動作の変更はしなかったのはなぜ?この新しい戦略には明らかな利益は見られません。
- どうすれば安全に作業コピーを移動できますか?
これはで前の質問Moving the parent directory of a git repository that contains submodulesと同じではないことに注意してください(私は私の作業コピーを移動した場合、私は壊れgitdirへのパスはもうGitのリポジトリではないことを私に言って、エラーメッセージが表示されます)私がであることを確信してくださいこれは私の.gitmodules
ファイルに絶対パスの存在によって関連する問題ではありません。
すべてが失敗した場合は、多分http://stackoverflow.com/a/15504813/6309? – VonC
実際に私はGitの最後のリリースとマスターのHEADを試しましたが、gitコマンドがない限り、これまでのところ運がない限り、私は気付いていません。 –
@ThomasMoulardはあなたのケースで1.8.3ですか? – VonC