裸のレポのサブモジュールで奇妙な問題に直面しています。私は何をしたのかを説明します。サブモジュール裸のレポの問題
私は4つのモジュールを含むレポを持っています。これは次のようになります: *スーパーレポ(トップレベルレポ) - このレポにサブモジュールを追加しました: mod_1、mod_2、mod_3、mod_4(内部サブモジュール) その後、私はこのスーパーレポから裸のレポを作りました。それをsuperepoと呼んでください。
今、私はこの裸のレポを使って、さまざまなpplで物を共有しています。
私は〜/ cloneというディレクトリにすべてのサブモジュールとともに裸のレポをクローンしました。 (gitクローン - 再帰的〜/ Superepo.gitクローン)。 クローンサブモジュール(mod_1とmod_2)のいずれかで何かを修正しました。私はこれらの変更をそれぞれのサブモジュールにコミットしました。私はsuperepoのクローンに変更を加えました。 (〜/クローン)
そして、私は裸のsuperepoに "git push〜/ superepo"を使って変更を加えました。
他の誰かが裸のレポをクローンしようとしました。しかし、次のようなエラーが表示されます。 - >
fatal:参照がツリーxyz(xyz = sh1 of mod_1 commit) サブモジュールパスmod_1でxyzをチェックアウトできません。
私は私が間違っていた可能性がある無知のようなものです。裸のレポやスーパーモジュールに何か問題がありますか?
あなたの意見は分かりません。私が間違っているステップを提案してください:Step_1:私は自分のクローンに変更をコミットしました。 (〜/クローン/ mod_1と〜/クローン)。 Step_2:その後、この更新クローンから裸のレポに変更をプッシュしました。 Step_3:誰かがこの更新された裸のレポをクローンしました。だから、この裸のレポのチャネージがこの新しいクローンに反映されるべきであるという私の理解に達しました。または、私はgitについてここでいくつかの非常にimpのコンセプトを見逃しているかもしれません。 –
'(cd mod_1; git push ...)と'(git push ...)の2つのプッシュステップが必要です。そうすれば、リモートからフェッチした人がそれらを見ることができるように、新しいコミット・アンド・ツリーがリモートのmod_1にあります。スーパーレポのプッシュでは、リモートのmod_1は更新されず、リモートのスーパーレポだけが更新されます。 – torek
@ agent.smith - あなたはサブモジュールにコミットし、他のステップを実行してメインリポジトリをプッシュしました。外部サブモジュールのレポはクローン時に見られるものなので、サブモジュールレポにもプッシュする必要があります。 – manojlds