Ich habe Github seit relativ kurzer Zeit verwendet und den Client immer zum Ausführen von Commits und Pulls verwendet. Ich habe mich gestern entschlossen, es von der Git-Bash aus zu versuchen, und ich habe erfolgreich ein neues Repo und festgeschriebene Dateien erstellt.
Heute habe ich Änderungen am Repository von einem anderen Computer aus vorgenommen. Ich habe die Änderungen festgeschrieben. Jetzt bin ich wieder zu Hause und habe eine git pull
Aktualisierung meiner lokalen Version durchgeführt. Ich erhalte Folgendes:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream develop origin/<branch>
Der einzige Mitwirkende an diesem Repo bin ich und es gibt keine Zweige (nur einen Meister). Ich bin auf Windows und habe den Pull-from-Git-Bash ausgeführt:
Git-Status:
$ git status
# On branch master
nothing to commit, working directory clean
Git-Zweig:
$ git branch
* master
Was mache ich falsch?
git remote -v
? Was steht da?git pull
.git pull --set-upstream-to=origin/master master
möglich. Siehe meine Antwort untenAntworten:
Sie können angeben, welchen Zweig Sie ziehen möchten:
Oder Sie können es so einrichten, dass Ihr lokaler Hauptzweig den Github-Hauptzweig als Upstream verfolgt:
Diese Zweigstellenverfolgung wird automatisch für Sie eingerichtet, wenn Sie ein Repository klonen (nur für die Standardverzweigung). Wenn Sie jedoch einem vorhandenen Repository eine Fernbedienung hinzufügen, müssen Sie die Verfolgung selbst einrichten. Zum Glück macht es der Rat von git ziemlich einfach, sich daran zu erinnern, wie es geht.
quelle
git branch -u origin/master
, vorausgesetzt, Sie haben den Master bereits ausgecheckt. Wenn nicht,git branch -u origin/master master
wird funktionieren.--set-upstream-to=
Syntax zu verwenden. (was der Ersatz für ist--set-upstream
)fetch
verloren gegangen ist. Daher die Notwendigkeit, es erneut einzurichten. :)Siehe: Git Checkout-Tag, Git Pull schlägt in der Verzweigung fehl
Wenn Sie dies wie ich ständig tun müssen, können Sie einen Alias einrichten, um dies automatisch zu tun, indem Sie Ihrer
.gitconfig
Datei Folgendes hinzufügen :Wenn Sie die Nachricht sehen
There is no tracking information...
, führen Sie Folgendes aus:Vielen Dank an https://zarino.co.uk/post/git-set-upstream/
quelle
.gitconfig
in einer Zeile zur globalen hinzuzufügen (kann für lokale oder andere Konfigurationen entsprechend geändert werden):git config --global alias.set-upstream '!git branch --set-upstream-to=origin/$(git symbolic-ref --short HEAD)'
Die Antwort von ComputerDruid ist großartig, aber ich denke nicht, dass es notwendig ist, den Upstream manuell einzurichten, es sei denn, Sie möchten. Ich füge diese Antwort hinzu, weil die Leute vielleicht denken, dass dies ein notwendiger Schritt ist.
Dieser Fehler wird behoben, wenn Sie die Fernbedienung angeben, die Sie wie folgt ziehen möchten:
Beachten Sie, dass dies
origin
der Name der Fernbedienung und der Name desmaster
Zweigs ist.1) So überprüfen Sie den Namen der Fernbedienung
2) So sehen Sie, welche Zweige im Repository verfügbar sind.
quelle
Ich stoße oft auf genau diese Nachricht, weil ich über eine lokale Verzweigung erstelle,
git checkout -b <feature-branch-name>
ohne zuerst die entfernte Verzweigung zu erstellen.Nachdem alle Arbeiten abgeschlossen und lokal festgeschrieben wurden, wurde durch den Fix
git push -u
der Remote-Zweig erstellt, meine gesamte Arbeit übertragen und anschließend die URL für die Zusammenführungsanforderung.quelle
git push -u origin <my-feature-branch-name>
, um den Remote-Zweig zu erstellen und meine ArbeitIch habe die obigen Beispiele ausprobiert und konnte sie nicht mit einem (Nicht-Master-) Zweig synchronisieren, den ich auf einem anderen Computer erstellt hatte. Als Hintergrund habe ich dieses Repository auf Computer A (git v 1.8) erstellt und dann das Repository auf Computer B (git 2.14) geklont. Ich habe alle meine Änderungen an Comp B vorgenommen, aber als ich versuchte, die Änderungen auf den Computer zu übertragen, konnte AI dies nicht und bekam den gleichen Fehler wie oben. Ähnlich wie bei den obigen Lösungen musste ich Folgendes tun:
etwas anders, hilft aber hoffentlich jemandem
quelle
Versuchen
Ich hoffe, diese Antwort hilft ursprünglich hier beantwortet https://stackoverflow.com/a/55015370/8253662
quelle
Mit Git 2.24 müssen Sie das nicht tun
Sie werden in der Lage sein:
Weitere Informationen finden Sie unter " Standard-Remote und Verzweigung mit
-u
Option - funktioniert mit,push
aber nichtpull
".quelle
1) git branch --set-upstream-to = origin /
<master_branch>
feature /<your_current_branch>
2) Git Pull
quelle
$ git branch --set-upstream-to=heroku/master master
undhat für mich gearbeitet!
quelle
Das gleiche passierte mir schon früher, als ich einen neuen Git-Zweig erstellte, ohne ihn zum Ursprung zu bringen.
Versuchen Sie zuerst, diese beiden Zeilen auszuführen:
Dann:
Es sollte jetzt gut sein!
quelle
Dies liegt daran, dass der aktuelle Zweig keine Verfolgung für den Zweig auf der Fernbedienung hat. Sie können es also auf zwei Arten tun.
quelle
Git-Zweig --set-upstream-to = Ursprung / Haupt
quelle