2015-08-17 10 views
259

Ich habe Github aus einem relativ kurzen Zeitraum verwendet, und ich habe immer den Client verwendet, um Commits und zieht. Ich habe gestern beschlossen, es von der Git-Bash aus zu versuchen, und ich habe erfolgreich ein neues Repo und engagierte Dateien erstellt.Es gibt keine Tracking-Informationen für den aktuellen Zweig

Heute habe ich Änderungen in das Repository von einem anderen Computer, habe ich die Änderungen übernommen und ich bin jetzt wieder zu Hause und führte ein git pull meine lokale Version zu aktualisieren und zu bekomme ich diese:

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> 

die Ich kann nur zu diesem Repo beitragen und es gibt keine Filialen (nur ein Master). Ich bin auf dem Fenster, und ich habe den Zug von git bash ausgeführt:

enter image description here

git status:

$ git status 
# On branch master 
nothing to commit, working directory clean 

git branch:

$ git branch 
* master 

Was mache ich falsch ?

+0

Okay, wie wäre es mit einem 'git remote -v'? Was steht da? – criswell

+0

Mögliches Duplikat von [git checkout tag, git pull schlägt fehl im Zweig] (http://stackoverflow.com/questions/10147475/git-checkout-tag-git-pull-fails-in-branch) – rjmunro

Antwort

453

Sie können angeben, welche Filiale Sie ziehen wollen:

git pull origin master 

Oder Sie könnten es so einrichten, dass Ihre lokalen Hauptzweigbahnen Github Master Zweig als vorgeschalteter:

git branch --set-upstream-to=origin/master master 
git pull 

Dieser Zweig Das Tracking wird automatisch für Sie eingerichtet, wenn Sie ein Repository klonen (nur für den Standardzweig), aber wenn Sie einem vorhandenen Repository einen Remote hinzufügen, müssen Sie das Tracking selbst einrichten. Glücklicherweise macht der Rat von git das ziemlich einfach, sich daran zu erinnern, wie man es macht.

+1

perfekt! es funktionierte. Also, was ist passiert ist, gab es keine "Standard-Zweig" für einen Standard "Git Pull"? deshalb gab es den fehler? – valerio0999

+7

--set-upstream ist offenbar in git 1.9.x veraltet. In Zukunft solltest du etwas wie 'git branch -u origin/master' verwenden, vorausgesetzt, du hast master bereits ausgecheckt. Wenn nicht, wird 'git branch -u origin/master master' funktionieren. –

+3

@BartRead hat es aktualisiert, um die neue klarere '--set-upstream-to =' Syntax zu verwenden. (das ist der Ersatz für "--set-upstream") – ComputerDruid

16

See: git checkout tag, git pull fails in branch

Wenn Sie wie ich das die ganze Zeit tun müssen, können Sie einen Alias ​​einrichten, um es durch das Hinzufügen der folgenden auf Ihre .gitconfig Datei automatisch zu tun:

[alias] 
    set-upstream = !git branch --set-upstream-to=origin/`git symbolic-ref --short HEAD` 

Wenn Sie sehen die Nachricht There is no tracking information..., nur git set-upstream, dann git push wieder ausführen.

Dank https://zarino.co.uk/post/git-set-upstream/

3

Ich laufe in dieser oft genau die Nachricht, weil ich eine lokale Niederlassungen über git checkout -b <feature-branch-name> ohne dass zunächst die Remote-Zweig erstellen.

Nachdem alle Arbeit abgeschlossen und lokal festgeschrieben wurde, war das Update git push -u, die den Remote-Zweig erstellt, schob alle meine Arbeit, und dann die Merge-Anfrage-URL.

0

1) git branch --set-Upstream-to = Herkunft/<master_branch> Merkmal/<your_current_branch>

2) Git-Pull-

0

ich die obigen Beispiele versuchte, und sie nicht mit einem synchronisieren bekommen könnte (Nicht-Master) Zweig, den ich auf einem anderen Computer erstellt hatte. Als Hintergrund habe ich dieses Repository auf Computer A erstellt (git v 1.8) und klonte dann das Repository auf Computer B (Git 2.14). Ich habe alle meine Änderungen an Comp B vorgenommen, aber als ich versuchte, die Änderungen auf Computer A zu übertragen, war ich nicht in der Lage, dies zu tun. Ähnlich wie bei den oben genannten Lösungen, was ich tun musste:

git branch --set-upstream-to=origin/<my_repository_name> 
git pull 

etwas anders, aber hoffentlich hilft jemand

0

ComputerDruid Antwort ist groß, aber ich glaube nicht, es notwendig ist, manuell einstellen Upstream es sei denn, Sie wollen. Ich füge diese Antwort hinzu, weil Leute denken könnten, dass das ein notwendiger Schritt ist.

Dieser Fehler wird verschwunden sein, wenn Sie die Fernbedienung an, die Sie wie unten ziehen wollen:

git pull origin master 

Beachten Sie, dass origin der Name des entfernten und master ist der Zweig Namen.


1) Wie Remote-Namen

git remote -v 

2) überprüfen, wie zu sehen, was im Repository verfügbar Filialen.

git branch -r