Das central
Repository musste auf einem neuen Server eingerichtet werden, also habe ich auf meinem lokalen Repo eine neue Fernbedienung erstellt und darauf verschoben.
Aber jetzt, wenn ich es tue git pull
, behauptet es, ich sei auf dem neuesten Stand. Es ist falsch - es erzählt mir von dem alten Remote-Zweig, nicht von dem neuen, von dem ich sicher weiß, dass er neue Commits abrufen muss.
Wie ändere ich meinen lokalen Zweig, um eine andere Fernbedienung zu verfolgen?
Ich kann dies in der Git-Konfigurationsdatei sehen, aber ich möchte die Dinge nicht durcheinander bringen.
[branch "master"]
remote = oldserver
merge = refs/heads/master
Antworten:
Verwenden von git v1.8.0 oder höher:
git branch branch_name
--set-upstream-to
your_new_remote/branch_name
Oder Sie können den
-u
Schalter verwenden:git branch branch_name
-u
your_new_remote/branch_name
Verwenden von git v1.7.12 oder früher:
git branch --set-upstream branch_name your_new_remote/branch_name
quelle
git branch --unset-upstream
- Dann funktioniert er wie in dieser Antwort angegeben (oder mit der nächstengit push -u / --set-upstream
).Für mich war das Update:
Dann:
quelle
set-url
und vergessen haben, es zurückzusetzen,git push
würden zukünftige Befehle fehlschlagenMit einem aktuellen Git (2.5.5) lautet der Befehl wie folgt:
Dadurch wird der remote verfolgte Zweig für Ihren aktuellen lokalen Zweig aktualisiert
quelle
git branch --set-upstream-to=origin/develop
wurde der Fehler ausgelöst :error: the requested upstream branch 'origin/develop' does not exist
. Zuvor habe ich einen Remote-Zweig in Delelop umbenannt.git fetch --all
vielleicht?Eine weitere Möglichkeit, viel Kontrolle über das Geschehen zu haben, besteht darin, Ihre Konfigurationen von Hand zu bearbeiten:
oder die Kurzschrift
Bearbeiten Sie dann die Datei nach Belieben, speichern Sie sie und Ihre Änderungen werden übernommen.
quelle
Wenn Sie vernünftig sind, ist das Bearbeiten der Konfigurationsdatei sicher genug. Wenn Sie etwas paranoider sein möchten, können Sie den Porzellanbefehl verwenden, um ihn zu ändern:
Wenn Sie sich die Konfiguration vorher und nachher ansehen, werden Sie natürlich feststellen, dass sie genau das getan hat, was Sie tun wollten.
Aber in Ihrem Einzelfall würde ich Folgendes tun:
Das heißt, wenn der neue Server die kanonische Fernbedienung sein soll, warum nicht als Ursprung bezeichnen, als ob Sie ursprünglich von ihm geklont hätten?
quelle
remote rename
würde nicht das tun, wonach gefragt wird, da es den Namen der Fernbedienung sowohl in[remote]
Konfigurationen als auch in[branch]
Konfigurationen ändert. In diesem Fall müssen Sie also die Konfigurationsdatei bearbeiten und das, was Sie sagen (Umbenennen von Fernbedienungen), nur in den[remote]
Konfigurationszeilen ausführen.oder
quelle
git fetch
. Ich hatte einen neuen Zweig in Bitbucket erstellt und wollte dorthin wechseln. git weiß nicht , über Remote - Änderungen so dass ich zu tun hatte ,git fetch
vorgit checkout feature/new-feature-branch
. Hoffe das hilft jemand anderem.Dies ist der einfachste Befehl:
Wenn der Befehl beispielsweise Folgendes
git remote -v
erzeugt:So wechseln Sie stattdessen zur Verfolgung des Teams:
quelle
Sie können entweder Ihren aktuellen Zweig löschen und Folgendes tun:
Oder ändern Sie den Remote-Server in der Konfiguration auf den aktuellen Server
quelle
git checkout --track -b local_branch_name origin/branch_name
Basierend auf dem, was ich aus der neuesten Git- Dokumentation verstehe , lautet die Zusammenfassung:
Diese Verwendung scheint ein bisschen anders zu sein als die Antwort von urschrei, da in seiner die Zusammenfassung lautet:
Ich vermute, sie haben die Dokumentation wieder geändert?
quelle
In der neuesten Git-Version wie 2.7.4 ,
git checkout branch_name
#zweigname, dessen Tracking-Zweig Sie ändern möchtengit branch --set-upstream-to=upstream/tracking_branch_name
#upstream - entfernter Namequelle
Ich fand den Beitrag von @critikaster hilfreich, außer dass ich diese Befehle mit GIT 2.21 ausführen musste:
quelle
Am einfachsten ist es, einfach in die neue Filiale zu wechseln:
quelle