Unter der Annahme des folgenden Projektlayouts: –
mainrepo_git
|____ .git
|____ .gitmodules
|____ proj <------- directory containing the code files for mainrepo
|____ 3rdpartysourcecode <-- directory containing upstream open source code
| |____ .git
| |____ 3rdpartyfiles
|
|____ mainrepofilesanddirectories
mainrepo_git enthält Quellcode, für den ich direkt verantwortlich bin. Ich habe Lese-/Schreibzugriff und kann direkt auf ein von mir verwaltetes Remote-Git-Repository pushen und pullen.
Innen verschachtelt mainrepo_git ist ein Verzeichnis, das ich benannt habe Quellcode von Drittanbietern. Dies Quellcode von Drittanbietern Verzeichnis ist in der Tat ein weiteres Git-Repo (allgemein auch als “Git-Submodul” bezeichnet), das auf ein Open-Source-Git-Repository eines Drittanbieters verweist, das von anderen Entwicklern verwaltet wird. Ich habe nur lesenden Zugriff darauf. Kein Schreibzugriff.
Gibt es eine Möglichkeit, einen bestimmten Commit-Hash des Git-Submoduls in Bezug auf einen Commit in meinem Haupt-Repository „einzufrieren“?
Zum Beispiel, wenn ich am Commit bin (oder zurückkomme). a12ucak In meinem Mainrepo wird mein Git-Submodul auch auf eine bestimmte Version zurückgesetzt, die ich zum Commit verbinde a12ucak? Und wenn ich auf Commit umschalte b349jdsakmein Git-Submodul wird auch auf eine Version zurückgesetzt, an die ich binde b349jdsak?
Also meine Frage ist: Gibt es eine Möglichkeit, eine Verknüpfung zwischen einem bestimmten Commit im Hauptrepo und einem entsprechenden Commit im Git-Submodul herzustellen? Wenn ich also diesen bestimmten Commit im Haupt-Git-Repo auschecke, wird der entsprechende Commit im Git-Submodul ebenfalls ausgecheckt.