Ich habe ein Remote-Bare-Repository hub
. Ich arbeite nur in der master
Branche. Der letzte Satz dieser Fehlermeldung unten lässt mich fragen: Wie finde ich heraus, welches die "standardmäßig konfigurierte Fernbedienung für Ihren aktuellen Zweig" ist ? Und wie stelle ich es ein?
[myserver]~/progs $ git remote -v
hub ~/sitehub/progs.git/ (fetch)
hub ~/sitehub/progs.git/ (push)
[myserver]~/progs $ git branch -r
hub/master
[myserver]~/progs $ cat .git/HEAD
ref: refs/heads/master
[myserver]~/progs $ git pull hub
You asked to pull from the remote 'hub', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.
git
git-push
remote-branch
leonbloy
quelle
quelle
git pull hub master
?Sie können es einfacher machen und garantieren, dass Ihre
.gitconfig
Zustand in einem sinnvollen Zustand bleibt:Verwenden der Git-Version v1.8.0 und höher
git push -u hub master
beim Schieben oder:git branch -u hub/master
ODER
(Dadurch wird die Fernbedienung für die aktuell ausgecheckten Zweig auf eingestellt.
hub/master
)git branch --set-upstream-to hub/master
ODER
(Dadurch wird die Fernbedienung für den genannten Zweig festgelegt
branch_name
nachhub/master
)git branch branch_name --set-upstream-to hub/master
Wenn Sie
v1.7.x
oder früher verwendenSie müssen verwenden
--set-upstream
:git branch --set-upstream master hub/master
quelle
set-upstream[-to]
Befehl ändert die aktuell konfigurierte Fernbedienung. Das Originalposter fragte nach der standardmäßig konfigurierten Fernbedienung. Sicher ist das nicht ganz das gleiche Konzept?--set-upstream-to
nahm genau die gleichen Änderungen vor,.git/config
die @scragz in seiner Antwort vorgeschlagen hatte .Der Vollständigkeit halber: In den vorherigen Antworten wird angegeben, wie der Upstream-Zweig eingerichtet wird, nicht jedoch, wie er angezeigt wird.
Es gibt einige Möglichkeiten, dies zu tun:
git branch -vv
zeigt diese Informationen für alle Branchen. (in den meisten Terminals blau formatiert)cat .git/config
zeigt dies auch.Als Referenz:
quelle
Der Befehl zum Abrufen der effektiven Push-Fernbedienung für den Zweig, z. B. Master, lautet:
git config branch.master.pushRemote || git config remote.pushDefault || git config branch.master.remote
Hier ist der Grund (aus der Ausgabe "man git config"):
branch.name.remote [...] teilt git fetch und git push mit, welche Fernbedienung von / push nach [...] [for push] abgerufen werden soll, und kann mit remote.pushDefault (für alle Zweige) [und] für die Der aktuelle Zweig [..] wird weiter von branch.name.pushRemote überschrieben [...]
Aus irgendeinem Grund gibt "man git push" nur über branch.name.remote an (obwohl es die niedrigste Priorität der drei hat) + gibt fälschlicherweise an, dass wenn es nicht gesetzt ist, die Standardeinstellungen von push auf origin gesetzt werden - dies ist nicht der Fall Wenn Sie ein Repo klonen, wird branch.name.remote auf origin gesetzt. Wenn Sie diese Einstellung jedoch entfernen, schlägt git push fehl, obwohl Sie immer noch die Ursprungsfernbedienung haben
quelle