Frage

Ich habe einen generischen Codaceticetagcode für das Remote-Bare-Repository.Ich arbeite nur im Zweig hub. Der letzte Satz dieser Fehlermeldung unten lässt mich fragen: Wie finde ich heraus, welche "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.

War es hilfreich?

Lösung

Verfolgen Sie den Remote-Zweig

Sie können das Standard-Remote-Repository zum Drücken und Ziehen mithilfe der Track-Option von git-branch angeben.Normalerweise tun Sie dies, indem Sie beim Erstellen Ihres lokalen Hauptzweigs die Option --track angeben. Da diese jedoch bereits vorhanden ist, aktualisieren wir die Konfiguration nur manuell wie folgt:

Bearbeiten Sie Ihren .git/config

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

Jetzt können Sie einfach git push und git pull.

[ Quelle ]

Andere Tipps

Sie können dies einfacher tun und sicherstellen, dass Ihr .gitconfig in einem aussagekräftigen Zustand verbleibt:

Verwenden der Git-Version v1.8.0 und höher

git push -u hub master beim Drücken oder:
git branch -u hub/master

ODER

(Hiermit wird die Fernbedienung für den aktuell ausgecheckten Zweig auf hub/master gesetzt.)
git branch --set-upstream-to hub/master

ODER

(Dadurch wird die Fernbedienung für den Zweig mit dem Namen branch_name auf hub/master gesetzt.)
git branch branch_name --set-upstream-to hub/master

Wenn Sie v1.7.x oder früher verwenden

Sie müssen --set-upstream verwenden:
git branch --set-upstream master hub/master

Der Vollständigkeit halber: In den vorherigen Antworten wird angegeben, wie der Upstream-Zweig eingerichtet wird, nicht jedoch, wie er angezeigt wird.

Es gibt verschiedene Möglichkeiten, dies zu tun:

git branch -vv zeigt diese Informationen für alle Zweige an.(in den meisten Terminals blau formatiert)

cat .git/config zeigt dies auch.

Als Referenz:

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, von welcher Fernbedienung [Push] [...] [für Push] kann mit remote.pushDefault (für alle Zweige) [und] für den aktuellen Zweig [..] überschrieben werden, der von branch.name.pushRemote [weiter überschrieben wird...]

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 Push-Standardeinstellungen auf origin zurückgehen, wenn dies nicht festgelegt ist - dies ist nicht der FallWenn 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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top