Ich benutze Github seit relativ kurzer Zeit und habe den Client immer verwendet, um Commits und Pulls durchzuführen. Ich habe gestern beschlossen, es mit der Git-Bash zu versuchen, und 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 übernommen und bin jetzt wieder zu Hause. Ich habe einen git pull
ausgeführt, um meine lokale Version zu aktualisieren.
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 von 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?
Sie können angeben, welchen Zweig Sie ziehen möchten:
git pull Origin master
Sie können es auch so einrichten, dass Ihr lokaler Master-Zweig den Github-Master-Zweig als Upstream verfolgt:
git branch --set-upstream-to=Origin/master master
git pull
Diese Zweigverfolgung wird automatisch für Sie eingerichtet, wenn Sie ein Repository klonen (nur für den Standardzweig). Wenn Sie jedoch einem vorhandenen Repository eine Remote-Instanz 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.
Siehe: Git-Checkout-Tag, Git-Pull schlägt im Zweig fehl
Wenn Sie dies wie ich die ganze Zeit tun müssen, können Sie einen Alias dafür einrichten, indem Sie Folgendes zu Ihrer .gitconfig
-Datei hinzufügen:
[alias]
set-upstream = \
!git branch \
--set-upstream-to=Origin/`git symbolic-ref --short HEAD`
Wenn Sie die Meldung There is no tracking information...
sehen, führen Sie Folgendes aus:
git set-upstream
git Push
Vielen Dank an https://zarino.co.uk/post/git-set-upstream/
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 tritt nicht mehr auf, wenn Sie die zu ziehende Fernbedienung wie folgt angeben:
git pull Origin master
Beachten Sie, dass Origin
der Name der Fernbedienung und master
der Name des Zweigs ist.
1) So überprüfen Sie den Namen der Fernbedienung
git remote -v
2) Wie Sie sehen, welche Zweige im Repository verfügbar sind.
git branch -r
Ich treffe genau diese Nachricht oft, weil ich über git checkout -b <feature-branch-name>
einen lokalen Zweig erstelle, ohne zuvor den fernen Zweig zu erstellen.
Nachdem die gesamte Arbeit abgeschlossen und lokal festgeschrieben wurde, lautete der Fix git Push -u
, wodurch die Remote-Verzweigung erstellt wurde, alle meine Arbeiten abgelegt wurden und dann die URL für die Zusammenführungsanforderung.
Ich 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 erstellt (Git v 1.8) und dann das Repository auf Computer B geklont (Git 2.14). Ich habe alle meine Änderungen auf Comp. B vorgenommen, aber als ich versuchte, die Änderungen auf Computer A zu übertragen, konnte ich dies nicht tun und es wurde der gleiche Fehler wie oben angezeigt. Ähnlich wie bei den obigen Lösungen musste ich Folgendes tun:
git branch --set-upstream-to=Origin/<my_repository_name>
git pull
etwas anders, aber hoffentlich hilft jemand
1) Git-Zweig --set-upstream-to = Origin/<master_branch>
Feature/<your_current_branch>
2) Git Pull
versuchen
git pull --rebase
hoffe, diese Antwort hilft ursprünglich hier beantwortet https://stackoverflow.com/a/55015370/8253662