Nur eine Klarstellung (mit Git Version 1.7.9.5 unter Ubuntu 12.04):
Git fügt Fernbedienungen hinzu / entfernt sie. Dies sind Remote-Instanzen von Git mit einem angeschlossenen Server.
git remote add myremote git://remoteurl
Sie können dann das Git-Repository wie folgt abrufen:
git fetch myremote
Es scheint, dass dadurch ein Zweig mit dem Namen "myremote" erstellt wird, die Fernbedienung für den Zweig wird jedoch nicht automatisch festgelegt. Dazu müssen Sie Folgendes tun:
Stellen Sie zunächst sicher, dass Sie dieses Problem haben, z
git config -l | grep myremote
Sie sollten etwas sehen wie:
remote.myremote.url=git://remoteurl
remote.myremote.fetch=+refs/heads/*:refs/remotes/myremote/*
branch.myremote.remote=.
branch.myremote.merge=refs/heads/master
Wenn Sie sehen branch.myremote.remote=.
, sollten Sie fortfahren:
git config branch.myremote.remote myremote
git checkout myremote
git pull
Sie sollten jetzt mit dem Remote-Repository auf dem neuesten Stand sein und Ihre Pulls / Pushs sollten an die entsprechende Remote gebunden sein. Auf diese Weise können Sie die Fernbedienungen pro Zweig wechseln . [Anmerkung 1]
Gemäß einer offiziellen Git-Konfigurationsdokumentation können Sie einen Standard festlegen Push-Zweig (suchen Sie einfach auf dieser Seite nach remote.pushdefault). Beachten Sie jedoch, dass dies keine Auswirkungen auf bereits vorhandene Repositorys / Zweige hat, sodass dies nur funktioniert für neue Repositories / Filialen. Sie sollten sich daran erinnern, dass --global
benutzerspezifische Repository-Standardeinstellungen (~ / .gitconfig), --system
systemweite Repository-Standardeinstellungen (/ etc / gitconfig) und kein Flag Konfigurationsoptionen für das aktuelle Repository (./.gitconfig) festlegen.
Auch ist zu beachten, dass die push.default Konfigurationsoption für die Konfiguration ist ref-spec Verhalten, nicht Remote- Verhaltens dient.
[1]: git branch --set-upstream myotherremote
würde normalerweise hier funktionieren, aber git wird sich beschweren, dass es keinen Zweig als seine eigene Fernbedienung festlegt, wenn git branch --set-upstream myremote
es verwendet wird. Ich glaube jedoch, dass dies ein falsches Verhalten ist.