Ich möchte ein Repo erstellen, das ein Remote-Repo einbindet.
Nehmen wir zum Beispiel jQuery als Submodul an:
git://github.com/jquery/jquery.git
Was wäre der Prozess, ein Repo mit jQuery als Submodul zu erstellen und mein eigenes externes als Remote-Repo hinzuzufügen?
Auch wenn dies eingerichtet ist und ich auf meine eigene Fernbedienung drücke / ziehe, bleibt die externe dann intakt?
Antworten:
Submodule sind wirklich sehr, sehr einfach zu referenzieren und zu verwenden. Angenommen, Sie haben MyWebApp bereits als Repo eingerichtet, geben Sie vom Terminal aus die folgenden Befehle aus:
Dadurch wird ein Verzeichnis mit dem Namen
externals/jquery
* erstellt und mit dem github jquery-Repository verknüpft. Jetzt müssen wir nur noch das Submodul starten und den Code darauf klonen:Sie sollten jetzt den neuesten Code in das Submodul klonen lassen. Wenn sich das jquery-Repo ändert und Sie den neuesten Code abrufen möchten, geben Sie den
submodule update
Befehl einfach erneut aus. Bitte beachten Sie: Ich habe normalerweise eine Reihe von externen Repositorys in meinen Projekten, daher gruppiere ich die Repos immer in einem "externen" Verzeichnis.Das Online- Pro-Git-Buch enthält einige gute Informationen zu Submodulen (und Git im Allgemeinen), die auf einfach zu lesende Weise präsentiert werden. Alternativ gibt
git help submodule
es auch gute Informationen. Oder schauen Sie sich das Git Submodule Tutorial im Git-Wiki an.Ich habe diesen Blogeintrag bemerkt, der über Submodule spricht und sie mit dem svn: externals-Mechanismus von Subversion vergleicht: http://speirs.org/blog/2009/5/11/understanding-git-submodules.html
* Als bewährte Methode sollten Sie Ihre Submodule immer in einem eigenen Verzeichnis ablegen, z. B. Extern. Wenn Sie dies nicht tun, kann Ihr Stammprojektverzeichnis sehr schnell sehr unübersichtlich werden.
quelle
git submodule add
undgit submodule update
... ich bin mir nicht sicher, wie viel einfacher es werden könnte.Das meiste, was Sie wissen müssen, wurde bereits beantwortet, daher werde ich mich nicht darum kümmern. Ich habe jedoch eine kleine Information gefunden, die normalerweise fehlt.
Wie Sie wissen, aktualisiert "git pull" die Submodule nicht und "git submodules update" lädt auch nicht den neuesten HEAD dieser Submodule herunter.
Sie können verwenden, um alle Ihre Submodule auf die neueste Upstream-Version zu aktualisieren
Wenn Sie häufig Ihre Submodule ändern und viele davon haben, wird "git foreach" von unschätzbarem Wert.
quelle
Am Ende fand ich http://github.com/evilchelu/braid, es schien zu passen, wie ich erwartet hatte, dass Submodule und Fernbedienungen funktionieren
quelle
Ich denke, dass die @ Hugo-Antwort genau das sein könnte, was Sie brauchen, und gut funktioniert. Also habe ich einen einfacheren Weg gefunden.
Das ist alles.
Ein vollständiger Workflow könnte also sein:
quelle