Wenn Sie die "Upstream-Konfiguration" Ihrer lokalen Niederlassung nicht zurücksetzen möchten, können Sie Folgendes verwenden:
git pull remote1 "$(git rev-parse --symbolic-full-name HEAD)"
Es wird wahrscheinlich unerwartete Dinge tun, wenn Ihr lokaler HEAD getrennt wird.
Sie könnten es als Git-Alias packen, um die Eingabe zu vereinfachen (obwohl Sie den Alias trotzdem an alle Benutzer verteilen müssten):
git config --global alias.pullcb \ '!sh -c '\''git pull "$1" "$(git rev-parse --symbolic-full-name HEAD)"'\'' -'
Verwenden Sie den Alias wie folgt:
git pullcb remote1
Ich würde vermuten, dass diese Art von Verzweigungsbeziehung (die leicht von einer gleichnamigen Verzweigung auf eine von mehreren Fernbedienungen gezogen werden muss) nicht einfach konfiguriert werden kann, da sie selten nützlich ist, wenn die meisten Aufgaben in Zweigniederlassungen erledigt werden .
Wenn die "neue Fernbedienung" hingegen die neue primäre Upstream-Quelle für Ihren lokalen Zweig ist, sollten Sie die Aktualisierung der "Upstream-Konfiguration" Ihres lokalen Zweigs in Betracht ziehen, sodass Sie sie einfach verwenden können git pull
(ohne Angabe eines Remote-Namens.) ).
Sie können die Upstream-Konfiguration für einen Zweig in Git 1.7.0 und höher 1 mit überprüfen
git rev-parse --symbolic-full-name my-branch@
Sie können die Upstream-Konfiguration in Git 1.7.0 und höher 2 mit aktualisieren
git branch --set-upstream my-branch some-remote/their-branch
Sobald Ihre Zweigstelle über die entsprechende Upstream-Konfiguration verfügt, können Sie sie einfach verwenden git pull
, um von der "Upstream-Zweigstelle" der aktuellen Zweigstelle abzurufen.
Letztlich wird die Upstream-Konfiguration eines Zweigs von den Konfigurationsvariablen branch.<name>.remote
und gesteuert branch.<name>.merge
(siehe git-config (1) ). Die --track
und --no-track
Optionen git branch
und git checkout
können verwendet werden, zu kontrollieren, ob diese Variablen gesetzt werden, wenn ein Zweig erstellt wird. Die branch.autoSetupMerge
Konfigurationsvariable steuert das Standardverhalten (wenn weder angegeben --track
noch --no-track
angegeben sind). In der Standardeinstellung wird die Upstream-Konfiguration für Zweige erstellt, die aus Fernverfolgungszweigen erstellt werden. Die folgenden Befehle erstellen also den neuen lokalen Zweig "my-branch" und konfigurieren ihn so, dass er den Zweig "their-branch" vom entfernten "some-remote" verfolgt:
git branch my-branch some-remote/their-branch git checkout -b my-branch some-remote/their-branch
1 Für Git-Versionen vor 1.7.0 können Sie die Upstream-Konfiguration für „my-branch“ wie folgt überprüfen:
git config branch.my-branch remote && git config branch.my-branch.merge
Beschreibungen der Werte finden Sie unter git-config (1) .
Sie können die .git/config
Datei auch manuell überprüfen .
2 Für Git-Versionen vor 1.7.0 können Sie die Upstream-Konfiguration für „my-branch“ wie folgt ändern:
git config branch.my-branch.remote some-remote && git config branch.my-branch.merge refs/heads/their-branch
Beschreibungen der Werte finden Sie unter git-config (1) .
Sie können die .git/config
Datei auch manuell bearbeiten ( git config -e
in Git 1.6.3 und höher).