2017-06-02 4 views
0

Ich versuche checkout ein Zweig, den ich gerade von meinem upstream Remote-Repo abgeholt habe, aber es scheint nicht zu funktionieren.git fetch funktioniert aber Kasse Filiale funktioniert nicht

$ git fetch upstream 
Fetching upstream 
From github.com:group/repo 
* [new branch]  feature-branch -> upstream/feature-branch 

$ git checkout feature-branch 
error: pathspec 'feature-branch' did not match any file(s) known to git. 

Mache ich etwas falsch?

Antwort

6

Die Verzweigung ist wahrscheinlich in mehr als einer Fernbedienung vorhanden. (Sie können dies mit git branch --list --remotes '*/feature-branch' bestätigen.) git checkout erstellt nur solche Zweige, wenn sie eindeutig sind. Von git-checkout(1):

Wenn <branch> nicht gefunden wird, aber es hat eine Tracking-Zweig existieren in genau einem entfernten (nennen wir es <remote>) mit einem passenden Namen, so behandeln, als gleichwertig

$ git checkout -b <branch> --track <remote>/<branch> 

So Sie ‚ll Notwendigkeit, dass stattdessen tun:

git checkout -b feature-branch --track upstream/feature-branch 
-1

Es gibt einige Automatismen, was passieren kann, wenn Sie bitten, eine lo zur Kasse cal-Zweig, der nicht existiert (z. B. aus einer entfernten Verzweigung), aber dies wird für Sie nicht fehlschlagen: git checkout upstream/feature-branch. Die einzige Sache ist, dass keine lokale Verzweigung erstellt wird.

1

Sie möchten, dass Git die Shortcut-Checkout-Notation versteht, aber es scheint, dass sie nicht anwendbar ist. Vielleicht haben mehrere Fernbedienungen Filialen mit dem Namen feature_branch?

Nun, wie auch immer, git checkout -b feature-branch -track upstream/feature-branch sollte

0

arbeiten Wenn Sie git checkout feature-branch git laufen versuchen, alle nicht gespeicherten Änderungen in der Datei feature-branch Namen zu entfernen. Für checkout Ihre Filiale verwenden -b Option wie diese git checkout -b feature-branch.

Verwandte Themen