Eine vorhandene Git-Verzweigung einer Remote-Verzweigung folgen lassen?

Lesezeit: 7 Minuten

Eine vorhandene Git Verzweigung einer Remote Verzweigung folgen lassen
Pat Notz

Ich weiß, wie man einen neuen Zweig erstellt, der entfernte Zweige verfolgt, aber Wie kann ich einen bestehenden Branch dazu bringen, einen Remote-Branch zu verfolgen?

Ich weiß, ich kann nur die bearbeiten .git/config Datei, aber es scheint, dass es einen einfacheren Weg geben sollte.

  • Wie unten angemerkt, können Sie für eine vorhandene Verzweigung verwenden git push -u origin branch-name.

    – Zack

    6. März 2014 um 23:46 Uhr

  • Wenn die lokale Verzweigung die aktuelle Verzweigung ist und die lokale Verzweigung nicht bereits eine Remote verfolgt, git pull liefert oft hilfreiche Meldungen über den entsprechenden Befehl zum Festlegen von Tracking-Informationen

    – Billard

    7. August 2015 um 12:59 Uhr


  • Es ist ärgerlich, wenn man Git lernt, einen Link zur Git-Dokumentation zu sehen. Diese Dokumentation scheint für Leute geschrieben worden zu sein, die das tun bereits wissen, was sie mit Git machen.

    – Felipe Alvarez

    18. März 2017 um 13:39 Uhr

  • Ab Git 2.10 sollten Sie zuerst in den beabsichtigten lokalen Zweig auschecken und dies dann tun git branch --set-upstream-to origin/<branch>

    – Mahdi Javaheri

    18. September 2017 um 4:59 Uhr

  • --set-upstream erzeugt einen Fehler: fatal: the '--set-upstream' option is no longer supported. Please use '--track' or '--set-upstream-to' instead. damit git branch --set-upstream-to origin/<branch name> ist der aktuelle Befehl, der funktioniert.

    – Super-Jade

    24. August 2018 um 17:47 Uhr

1646896088 702 Eine vorhandene Git Verzweigung einer Remote Verzweigung folgen lassen
Dan Formen

Einen Zweig gegeben foo und eine Fernbedienung upstream:

Ab Git 1.8.0:

git branch -u upstream/foo

Oder, wenn lokale Niederlassung foo ist nicht der aktuelle Zweig:

git branch -u upstream/foo foo

Wenn Sie längere Befehle eingeben möchten, entsprechen diese den beiden oben genannten:

git branch --set-upstream-to=upstream/foo

git branch --set-upstream-to=upstream/foo foo

Ab Git 1.7.0 (vor 1.8.0):

git branch --set-upstream foo upstream/foo

Anmerkungen:

  • Alle oben genannten Befehle bewirken eine lokale Verzweigung foo Remote-Zweig zu verfolgen foo aus der Ferne upstream.
  • Die alte (1.7.x) Syntax wird zugunsten der neuen (1.8+) Syntax verworfen. Die neue Syntax soll intuitiver und leichter zu merken sein.
  • Das Definieren eines Upstream-Zweigs schlägt fehl, wenn es für neu erstellte Remotes ausgeführt wird, die noch nicht abgerufen wurden. In diesem Fall laufen git fetch upstream vorweg.

Siehe auch: Warum muss ich die ganze Zeit `–set-upstream` machen?

  • Ist “Upstream” der Name der Fernbedienung? dh was würden die meisten standardmäßig “Ursprung” nennen?

    – Andreas Vit

    26. Juni 2010 um 6:30 Uhr

  • @Andrew: Ja. git branch --set-upstream master origin/master würde dem entsprechen, was automatisch getan wird, wenn Sie ein Repository zum ersten Mal klonen.

    – Dan Formen

    26. Juni 2010 um 10:09 Uhr

  • In einem ähnlichen Zusammenhang ist es großartig, dies zu Ihrer gitconfig hinzuzufügen: “[push] default=tracking” dies macht es so, dass Pushs an die gleiche Stelle gehen, von der Pulls kommen 🙂

    – jpswain

    5. Dezember 2010 um 4:31 Uhr


  • Ich erhalte “fatal: Not a valid object name: ‘origin/master’.”

    – Joachim

    24. März 2011 um 22:07 Uhr

  • git push -u origin foo über

    – Baumwolle

    21. September 2011 um 7:02 Uhr


Eine vorhandene Git Verzweigung einer Remote Verzweigung folgen lassen
Paul Hedderly

Sie können Folgendes tun (vorausgesetzt, Sie sind auf dem Master ausgecheckt und möchten auf einen Remote-Branch-Master pushen):

Richten Sie die „Fernbedienung“ ein, falls Sie sie noch nicht haben

git remote add origin ssh://...

Konfigurieren Sie nun den Master so, dass er weiß, dass er verfolgen soll:

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

Und drücken:

git push origin master

  • ist es wirklich erforderlich, die fernbedienung und die abzweigung in den schub zu bringen? Ich meine, Sie brauchen es nur, wenn Ihre ausgecheckte Filiale nicht die ist, die Sie pushen möchten, oder?

    – Doppelgänger

    2. März 2010 um 5:14 Uhr

  • Ja – aber aus dem Gedächtnis müssen Sie möglicherweise für den ersten Push explizit sein. Kann natürlich problemlos getestet werden… 🙂

    – Paul Hederley

    18. Juni 2010 um 20:57 Uhr

  • +1 Dies ist die Antwort für Windows-Benutzer, die mit der msysgit-Vorschau feststecken, die vor 1.8 ist. Dank dafür.

    – John

    16. Oktober 2012 um 12:33 Uhr

  • Dies ist die einzige Antwort, die für mich funktioniert hat. Als ich die akzeptierte Antwort versuchte, die Upstream-Fernbedienung für einen vorhandenen Zweig festzulegen, bekam ich: error: the requested upstream branch 'upstream/master' does not exist.

    – Steve K

    13. Mai 2014 um 23:02 Uhr


  • @SteveK das liegt höchstwahrscheinlich daran, dass dein Upstream aufgerufen wird origin und nicht upstream.

    – umläuten

    11. August 2015 um 14:21 Uhr

1646896089 958 Eine vorhandene Git Verzweigung einer Remote Verzweigung folgen lassen
Gregor Bacon

Ich mache das als Nebeneffekt des Drückens mit dem -u Option wie in

$ git push -u origin branch-name

Die entsprechende lange Option ist --set-upstream.

Die git-branch Befehl versteht auch --set-upstreamaber seine Verwendung kann verwirrend sein. Version 1.8.0 modifiziert die Schnittstelle.

git branch --set-upstream ist veraltet und wird möglicherweise in relativ ferner Zukunft entfernt. git branch [-u|--set-upstream-to] wurde mit einer vernünftigeren Reihenfolge der Argumente eingeführt.

Es war verlockend zu sagen git branch --set-upstream origin/master, aber das weist Git an, den lokalen Branch „origin/master“ so einzurichten, dass er in den aktuell ausgecheckten Branch integriert wird, was höchst unwahrscheinlich ist, was der Benutzer gemeint hat. Die Option ist veraltet; benutze das neue --set-upstream-to (mit einem kurzen und süßen -u) Option stattdessen.

Angenommen, Sie haben einen Einheimischen foo Verzweigung und möchten, dass sie die Verzweigung mit demselben Namen behandelt wie ihre Upstream-Verzweigung. Machen Sie dies möglich mit

$ git branch foo
$ git branch --set-upstream-to=origin/foo

oder nur

$ git branch --set-upstream-to=origin/foo foo

1646896089 433 Eine vorhandene Git Verzweigung einer Remote Verzweigung folgen lassen
Igel

Für Git-Versionen 1.8.0 und höher:

Eigentlich für die akzeptierte Antwort zu arbeiten:

git remote add upstream <remote-url>
git fetch upstream
git branch -f --track qa upstream/qa
# OR Git version 1.8.0 and higher:
git branch --set-upstream-to=upstream/qa
# Gitversions lower than 1.8.0
git branch --set-upstream qa upstream/qa

1646896090 432 Eine vorhandene Git Verzweigung einer Remote Verzweigung folgen lassen
James Met

Vielleicht finden Sie die git_remote_branch Werkzeug nützlich. Es bietet einfache Befehle zum Erstellen, Veröffentlichen, Löschen, Verfolgen und Umbenennen von Remote-Branches. Eine nette Funktion ist, dass Sie a fragen können grb Befehl, um zu erklären, welche Git-Befehle er ausführen würde.

grb explain create my_branch github
# git_remote_branch version 0.3.0

# List of operations to do to create a new remote branch and track it locally:
git push github master:refs/heads/my_branch
git fetch github
git branch --track my_branch github/my_branch
git checkout my_branch

  • grb ist ein Rubinjuwel, auf das wie unter erklärt zugegriffen werden kann ihr github

    – Mcabrams

    18. März 2013 um 20:26 Uhr

  • Das OP stellt eine Frage zu Git selbst. Also kein neues Tool einzuführen wäre wahrscheinlich besser.

    – zeekvfu

    18. Mai 2014 um 2:25 Uhr


  • grb ist ein Alias ​​für git-rebase auf meiner macOS-Installation. Ich habe das nicht gemacht 🙂

    – Rob-Zombie

    9. März 2018 um 12:12 Uhr

Ich glaube, dass Sie bereits in Git 1.5.x einen lokalen Zweig erstellen konnten $BRANCH einen entfernten Zweig verfolgen origin/$BRANCHso was.

Angesichts dessen $BRANCH und origin/$BRANCH existieren, und Sie sind derzeit nicht ausgecheckt $BRANCH (Schalten Sie weg, wenn Sie haben), tun Sie:

git branch -f --track $BRANCH origin/$BRANCH

Das bildet nach $BRANCH als Tracking-Zweig. Die -f zwingt die Schöpfung trotz $BRANCH schon vorhanden. --track ist optional, wenn die üblichen Standardwerte vorhanden sind (d. h. der Parameter git-config branch.autosetupmerge ist wahr).

Hinweis, ggf origin/$BRANCH existiert noch nicht, Sie können es erstellen, indem Sie Ihre lokale $BRANCH in das entfernte Repository mit:

git push origin $BRANCH

Gefolgt von dem vorherigen Befehl, um den lokalen Branch in einen Tracking-Branch hochzustufen.

  • grb ist ein Rubinjuwel, auf das wie unter erklärt zugegriffen werden kann ihr github

    – Mcabrams

    18. März 2013 um 20:26 Uhr

  • Das OP stellt eine Frage zu Git selbst. Also kein neues Tool einzuführen wäre wahrscheinlich besser.

    – zeekvfu

    18. Mai 2014 um 2:25 Uhr


  • grb ist ein Alias ​​für git-rebase auf meiner macOS-Installation. Ich habe das nicht gemacht 🙂

    – Rob-Zombie

    9. März 2018 um 12:12 Uhr

Eine vorhandene Git Verzweigung einer Remote Verzweigung folgen lassen
Isaak

1- Aktualisieren Sie Ihre lokalen Metadaten mit: git fetch –all

Geben Sie hier die Bildbeschreibung ein

2- Zeigen Sie Ihre Remote- und lokalen Zweige mit: git branch -a
siehe folgenden Screenshot

Geben Sie hier die Bildbeschreibung ein

3- Wechseln Sie zum Zielzweig, den Sie mit der Fernbedienung verknüpfen möchten: mit

git checkout branchName

Beispiel :

Geben Sie hier die Bildbeschreibung ein

4- Verknüpfen Sie Ihren lokalen Zweig mit einem entfernten Zweig mit:

git branch –set-upstream-to nameOfRemoteBranch

Hinweis: nameOfRemoteBranch : um aus der Ausgabe von Schritt 2 „git branch -r“ zu kopieren

Anwendungsbeispiel:

Geben Sie hier die Bildbeschreibung ein

  • Meist einfache und einfache Antwort.

    – Vibs2006

    30. August 2017 um 6:26 Uhr

986790cookie-checkEine vorhandene Git-Verzweigung einer Remote-Verzweigung folgen lassen?

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

Privacy policy