2017-05-14 1 views
0

Ich brauche Ihren Rat zu folgendem. Ich habe ein Ein-Repo, das sich auf ein anderes Repo als Submodul bezieht. Also, wenn Sie dieses Hauptrepo auschecken, das das andere Repo als Submodul enthält. Ich bekomme diesen Fehler. Im Submodulpfad abgerufen, aber nicht enthalten 737282d4e408c414e8fcca176aa805ebeb802db9. Das direkte Abrufen dieses Commits ist fehlgeschlagen.Git Repo Fetching Submodul Repo Faisl zum Abrufen bestimmter gültigen Submodul für eine bestimmte Commit?

Ok Ich verstehe das im Grunde gab es falsche Commits im Submodul Zweig und einer der Entwickler rebased die Verzweigung zu dem Punkt, von dem die falschen Commits passiert und schob es zu meistern. Jetzt möchte ich nicht, dass mein Hauptrepo auch diese Commits bekommt, aber ich denke, es bezieht sich immer noch auf diese Commits vor der Rebase oder so. Bitte leiten Sie hier klar, was in diesen Fällen zu tun ist? Ich will diese Änderungen nicht und die Rebase im Submodul war in Ordnung, nur wollen die wichtigsten Repo auch nicht diese Änderungen zu bekommen und nur abrufen, was es gibt, ist Master dieses Submodul Repo.

Antwort

0

Da müssen Sie sowohl die lokale Submodul-Version als auch die rebasierte Version von anderen Entwicklern beibehalten. Sie können also ein anderes Submodul für denselben Repo in einem anderen Ordner hinzufügen, auf den Sie verweisen können.

Nehmen Sie an, der Name des Submodul-Repos lautet repo1, Sie haben also bereits einen Ordner mit dem Namen repo1. Dann können Sie das Submodul unter git submodule add <URL for repo1> repo1new hinzufügen. Jetzt haben Sie einen Ordner repo1new mit der neuesten Version repo1.

Wenn Sie bereit sind, die neueste Version von repo1 für repo1 Ordner zu erhalten, können Sie verwenden:

git submodule update --init 
+0

Hallo Marina danke für die Antwort. Bitte lesen Sie meine Frage zu dieser Frage und lassen Sie wissen, was Sie vorschlagen. – user3650632

+0

@ user3650632 Ja, Sie können 'git submodule update --init' verwenden, um das Submodul auf die neueste Version zu aktualisieren. –

+0

@ user3650632 hat die Antwort Ihnen geholfen, das Problem zu lösen? Wenn ja, bitte markieren Sie es. Und es wird anderen helfen, die ähnliche Fragen haben. –

0

MSFT Danke für die Antwort. Grundsätzlich möchte ich die lokale Submodulversion nicht behalten. Damit meine ich, dass ich nur die rebased-Version behalten möchte und dass, wenn der andere Repo, der dieses Submodul benutzt, Code für dieses Submodul während des Checkouts holt, sollte es die neueste rebased-Version bekommen, die zum Master-Commit verpflichtet ist. Die Commits, die gemacht wurden, sollten einfach ignoriert werden und der Entwickler kann eine weitere Kopie von dem Punkt nehmen, an dem er rebasiert wurde, und das Modul, das dieses Submodul anleitet, sollte von genau diesem Punkt an nicht die früheren Commits holen. Ich hoffe, das war klar? Also soll ich ein git submodule update machen - von wo aus?

Verwandte Themen