Eine vorhandene Git-Verzweigung einer Remote-Verzweigung folgen lassen?
Lesezeit: 7 Minuten
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
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:
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
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:
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
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
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
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
Isaak
1- Aktualisieren Sie Ihre lokalen Metadaten mit: git fetch –all
2- Zeigen Sie Ihre Remote- und lokalen Zweige mit: git branch -a
siehe folgenden Screenshot
3- Wechseln Sie zum Zielzweig, den Sie mit der Fernbedienung verknüpfen möchten: mit
git checkout branchName
Beispiel :
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:
Meist einfache und einfache Antwort.
– Vibs2006
30. August 2017 um 6:26 Uhr
9867900cookie-checkEine vorhandene Git-Verzweigung einer Remote-Verzweigung folgen lassen?yes
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.
damitgit branch --set-upstream-to origin/<branch name>
ist der aktuelle Befehl, der funktioniert.– Super-Jade
24. August 2018 um 17:47 Uhr