Git-Pull aus einem anderen Repository

Lesezeit: 3 Minuten

Git Pull aus einem anderen Repository
Libbux

Ich habe ein Repository namens Generic, die eine generische Anwendung ist. Ich habe es in ein Repository namens gegabelt Acmedie nur auf der gespeicherten Anwendung aufbaut Generic -Repository und fügt ihm das Acme Co-Branding hinzu.

Wenn ich Änderungen an der Kernfunktionalität in Genericich möchte die aktualisieren Acme Repository mit den neuesten Änderungen, die ich an der Kernfunktionalität vorgenommen habe, in Generic. Wie würde ich das machen?

Soweit ich das beurteilen kann, versuche ich im Wesentlichen, die in einem Upstream-Repository vorgenommenen Änderungen in den aktuellen Fork einzufügen.

Wenn es irgendetwas bedeutet, versuche ich dies, weil ich eine generische Anwendung habe, auf der ich dann aufbaue und für einzelne Kunden (wie z Acme in diesem Beispiel). Wenn es eine sauberere Möglichkeit gibt, lassen Sie es mich wissen.

Git Pull aus einem anderen Repository
McLovin

Geben Sie den folgenden Befehl in Ihrem aus Acme Repo. Es fügt ein neues Remote-Repository mit dem Namen hinzu upstream das deutet auf die hin Generic Repo.

git remote add upstream https://location/of/generic.git

Sie können dann alle vorgenommenen Änderungen zusammenführen Generic in den aktuellen Zweig in Acme mit folgendem Befehl:

git pull upstream

Wenn Sie nur möchten, dass die Änderungen heruntergeladen werden, ohne automatisch zusammenzuführen, verwenden Sie git fetch anstatt git pull.

Wenn Sie das Pushen zu diesem Repository deaktivieren möchten, setzen Sie die Push-URL mit etwas wie auf eine ungültige URL

git config remote.upstream.pushurl "NEVER GONNA GIVE YOU UP"

Git wird Sie jetzt anschreien, dass Sie kein Repo finden können, wenn Sie versuchen, darauf zu pushen upstream (und entschuldigen Sie die Rickroll, aber es war die erste zufällige Saite, die mir in den Sinn kam).

  • Großartig, danke. Nur noch eine Sache: Gibt es eine Möglichkeit, diese Fernbedienung schreibgeschützt zu machen, damit ich nicht versehentlich darauf drücke?

    – Libbux

    18. Juli 14 um 3:11 Uhr


  • Ich fing an zu antworten, aber ich sehe, dass McLovin seine Antwort bereits so bearbeitet hat, dass sie das enthält.

    – Frankie Simon

    9. März 15 um 13:20 Uhr

  • Seit Git 2.9 müssen Sie das Flag –allow-unrelated-histories angeben. Siehe stackoverflow.com/a/37938036/3799847

    – sfinks_29

    26. Oktober 17 um 2:24 Uhr

  • Ich musste ausstellen git pull --allow-unrelated-histories upstream master

    – Alec Jacobson

    27. Dezember 17 um 17:32 Uhr

  • Ich habe das aber versucht git pull upstream hängt einfach … irgendwelche Ideen?

    – Paulo Carvalho

    4. Februar 19 um 13:53 Uhr

Um einen bestimmten Zweig aus einem anderen Repo zu ziehen, können Sie den folgenden Git-Befehl verwenden.

git pull <git_url> <branch> --allow-unrelated-histories

Wie @vin erwähnt hat, können Sie direkt aus einem anderen Repo ziehen, ohne einen neuen Ursprung hinzuzufügen (unter der Annahme eines Pulls aus einem anderen Repo master Verzweigung zum Lokal master Ast):

git pull https://some-other-repo.git master:master 

Wenn die Commit-Historien der beiden Repos dann nicht verknüpft sind --allow-unrelated-histories wird benötigt, aber verwenden Sie es mit Vorsicht, da es impliziert, dass Sie wissen, was Sie tun.

Du kannst auch push ein lokales Repo zu einem anderen Repo ohne Hinzufügen als Remote (der Remote-Zweig muss nicht vorhanden sein, sodass Sie alles verwenden können, was Sie möchten, z master:new_branch):

git push https://some-other-repo.git master:master

.

758360cookie-checkGit-Pull aus einem anderen Repository

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy