2017-05-14 7 views
0

私はあなたのアドバイスが必要です。私はサブモジュールとして別のレポを参照する1つのレポを持っています。だからあなたがサブモジュールとして他のレポを含んでいるこのメインレポをチェックアウトする時。私はこのエラーが発生します。 サブモジュールのパスで取得されましたが、737282d4e408c414e8fcca176aa805ebeb802db9は含まれていませんでした。そのコミットの直接フェッチに失敗しました。与えられたコミットの特定の有効なサブモジュールをフェッチするために、サブモジュールのレポをフェッチする

私は基本的に、サブモジュールブランチに間違ったコミットがあり、開発者の1人が間違ったコミットが発生した場所にブランチをリベースし、マスターにプッシュしたことを理解しています。今私は私のメインリポジトリにもそれらのコミットを得ることを望んでいないが、私はそれがまだrebaseまたは何かの前にそれらのコミットを参照していると思う。この場合、何をすべきかを明確にガイドしてください。私はそれらの変更を望んでいないし、サブモジュールのrebaseはちょうどメインのレポもそれらの変更を取得し、そのsubmoduledレポのマスターが何かを取得しないようにしたいです。

答えて

0

ローカルサブモジュールのバージョンとリベースされたバージョンの両方を他の開発者が保持する必要があるためです。したがって、別のフォルダに同じリポジトリのサブモジュールを追加して参照することができます。

サブモジュールレポの名前がrepo1であると仮定すると、既にrepo1という名前のフォルダがあります。その後、サブモジュールをgit submodule add <URL for repo1> repo1newで追加することができます。今度はrepo1newというフォルダとrepo1という最新バージョンのフォルダが作成されます。

あなたはrepo1フォルダのrepo1の最新バージョンを取得する準備ができたら、あなたが使用することができます。

git submodule update --init 
+0

こんにちはマリーナが返事をありがとう。以下のこの質問に私の質問を読んで、あなたの提案を教えてください。 – user3650632

+0

@ user3650632はい、 'git submodule update --init'を使うと、サブモジュールを最新のバージョンに更新することができます。 –

+0

@ user3650632答えが問題を解決するのに役立ちましたか?はいの場合は、それに印を付けてください。それは、同様の質問をした他の人を助けるでしょう。 –

0

MSFT返信用 感謝。基本的に私は地方のサブモジュールのバージョンを保持したくありません。これにより、リベースされたバージョンのみを保持し、このサブモジュールを使用する他のリポジトリがチェックアウト中にこのサブモジュールのコードをフェッチする場合、マスターにコミットされた最新のリベースバージョンを取得する必要があることを意味します。実行されたコミットは無視されるだけで、開発者はリベースされた時点から別のコピーを取得することができ、このサブモジュールを参照するモジュールも以前のコミットではなく、その時点からフェッチする必要があります。私はこれがはっきりしたことを望む? だから私はgitのサブモジュールの更新を行う必要がありますか?

関連する問題