2017-03-08 15 views
0

私のgitプロジェクトの外からサブモジュールの更新を実行したいと思います。ほとんどのコマンド(例えばgit status)のために、私はそうのようにgitの--git-dir--work-tree引数を与えることができます:fatal: $program_name cannot be used without a working tree.別のディレクトリからgitサブモジュールを更新する

私は私がに変更できることを認識しています。しかし

git --git-dir=/path/to/root/.git --work-tree=/path/to/root status

git --git-dir=/path/to/root/.git --work-tree=/path/to/root submodule updateを実行し、結果を提供します/path/to/rootディレクトリですが、gitがgitプロジェクトの外部からサブモジュールを更新できるかどうかを知りたいと思います。

答えて

0

私はあなたを作成しない限り、サブモジュールのgitディレクトリが.git\modules\<submodule-name>フォルダではなく、サブモジュール自体(内部に位置しているので、これがあるgit --git-dir=<path-to-repo>\.git\modules\<submodule-name>

を行うことによって、メインリポジトリ外のサブモジュール内からのgitコマンドを実行することができましたサブモジュールを最初の場所に置いてください。その場合は、git submodule absorbgitdirsを実行してこれを修正してください)。新しく作成されたクローンから初めてgit submodule updateを実行するまで、.git\modules\<submodule-name>フォルダは存在しません。

しかし、git submodule updateを実行する際に、メインリポジトリの--git-dirを使用して同じ問題が発生しました。作業ツリーを指定しても指定しなくても動作しませんでした。私はこれがバグか、何か間違っているのだろうかと思います。

しかし、私が働いてリンクされ、最初のコマンドので、あなただけの次の操作を行うことができます。メインリポジトリ外から自分のサブモジュールでgitのプルを実行します

git --git-dir=<path-to-repo>\.git\modules\<submodule-name> pull

関連する問題