1034 Stimmen

Wie kann man die Verfolgung eines Zweiges ändern?

El central Repository musste auf einem neuen Server eingerichtet werden, also habe ich ein neues Remote-Repository auf meinem lokalen Repository erstellt und auf dieses gepusht.

Aber wenn ich es jetzt tue git pull heißt es, ich sei auf dem neuesten Stand. Das ist falsch - es sagt mir etwas über die antiguo entfernten Zweig, nicht den neuen, von dem ich mit Sicherheit weiß, dass er neue Commits enthält.

Wie ändere ich meinen lokalen Zweig so, dass er einem anderen entfernten Standort folgt?

Ich kann dies in der Git-Konfigurationsdatei sehen, aber ich möchte nicht alles durcheinander bringen.

[branch "master"]
    remote = oldserver
    merge = refs/heads/master

2 Stimmen

Ich habe Ihren Titel geändert - Sie versuchen tatsächlich, die Fernbedienung zu ändern, die Sie verfolgen, aber immer noch denselben Zweignamen darin zu verfolgen.

10 Stimmen

Es ist schwierig, dies als ein Duplikat von Wie bringt man einen bestehenden Git-Zweig dazu, einen entfernten Zweig zu verfolgen? . In dieser Frage wird nicht angegeben, dass der Zweig bereits einen entfernten Zweig verfolgt. Diese hier schon.

14voto

Andries Punkte 181

Dies ist der einfachste Befehl:

git push --set-upstream <new-origin> <branch-to-track>

Zum Beispiel mit dem Befehl git remote -v produziert so etwas wie:

origin  ssh://git@bitbucket.some.corp/~myself/projectr.git (fetch)
origin  ssh://git@bitbucket.some.corp/~myself/projectr.git (push)
team    ssh://git@bitbucket.some.corp/vbs/projectr.git (fetch)
team    ssh://git@bitbucket.some.corp/vbs/projectr.git (push)

Stattdessen sollten Sie zur Verfolgung des Teams übergehen:

git push --set-upstream team master

0 Stimmen

Der zu verfolgende Zweig ist optional, wenn es keine Unklarheiten gibt. Ich habe Ihren Vorschlag verwendet, als ich von Github wegging ;) Vielen Dank dafür.

7voto

uma Punkte 2814
git fetch origin
git checkout --track -b local_branch_name origin/branch_name

o

git fetch
git checkout -b local_branch_name origin/branch_name

0 Stimmen

Für meinen Fall benötigte ich git fetch . Ich hatte einen neuen Zweig in Bitbucket erstellt und wollte zu ihm wechseln. git kennt keine Fernänderungen, also musste ich git fetch antes de git checkout feature/new-feature-branch . Ich hoffe, das hilft jemandem weiter.

6voto

RDL Punkte 7707

Sie können entweder Ihre aktuelle Verzweigung löschen und dies tun:

git branch --track local_branch remote_branch

Oder ändern Sie den Remote-Server in der Konfiguration auf den aktuellen Server

0 Stimmen

Funktionierte bei mir nicht, der einzige funktionierende Befehl war der von @uma : git checkout --track -b local_branch_name origin/branch_name

4voto

ArthNRick Punkte 865

Ist es am einfachsten, einfach auf den neuen Zweig zu pushen:

git push -u origin branch/name

1 Stimmen

Ich bin mir nicht sicher, warum diese Antwort nicht mehr Zuspruch erhält - es ist buchstäblich der schnellste Weg, um zu aktualisieren, welche Fernbedienung geortet wird. Ich war auf der Suche nach einer besseren Antwort als dieser, d.h. einer Kommandozeilenoption, die sich ohne Push ändern würde, aber dies scheint die beste Lösung zu sein ... git config -e ist eine zweite Option, wenn Sie noch nicht bereit sind, zu pressen ...

3voto

Arshan Khanifar Punkte 161

Basierend auf dem, was ich aus dem letzten Git verstehe Dokumentation lautet die Kurzfassung:

git branch -u upstream-branch local-branch
git branch --set-upstream-to=upstream-branch local-branch

Diese Verwendung scheint etwas anders zu sein als die Antwort von urschrei, denn bei ihm lautet die Synopse:

git branch local-branch -u upstream-branch 
git branch local-branch --set-upstream-to=upstream-branch 

Ich nehme an, sie haben die Dokumentation erneut geändert?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X