2015-06-16 10 views
6

Ich habe ein Repo, das eine andere Fernbedienung upstream neben origin hat. Ich kann git checkout origin/master tun, aber wenn ich git checkout upstream/master laufen, erhalte ich:Checkout-Zweig auf verschiedenen remote

error: pathspec 'upstream/master' did not match any file(s) known to git. 

Das funktioniert auch nicht:

$ git fetch upstream 
From https://github.com/getsentry/sentry 
* branch   HEAD  -> FETCH_HEAD 
$ git co -b asdf --track upstream/master 
fatal: Cannot update paths and switch to branch 'asdf' at the same time. 
Did you intend to checkout 'upstream/master' which can not be resolved as commit? 

Wie Zweige zu überprüfen, auf upstream Fern wie ich auf origin Fern tun? Meine git Version ist 2.1.2.

Antwort

11

einfach die Refs von der Remote-Abruf (dies wird alle Zweig holen, commit Refs usw. für die Upstream-Repo)

git fetch upstream 

Danach wird die benötigte Zweig Kasse (dies erzeugt eine lokale Kopie der Branche

)
git checkout -b <branchname> --track upstream/<branchname> 

Nun, wenn Sie die Änderungen in dieser Branche in Zukunft ziehen wollen, alles, was Sie tun müssen, ist

git pull upstream <branchname> 

Wie erwähnt here, versuchen Sie eine explizite holen auf dem Zweignamen zu tun:

git fetch upstream master:branch_name 
+0

Funktioniert nicht: 'fatal: Pfade können nicht aktualisiert und zur Verzweigung 'asdf' gleichzeitig umgeschaltet werden. Wollten Sie "upstream/master" auschecken, was nicht als Commit gelöst werden kann? '. – fossilet

+0

@fossilet Können Sie überprüfen, ob 'git fetch upstream master: branch_name' für Sie arbeitet? Überprüfen Sie http://StackOverflow.com/a/1614996/1860929 –

+0

Es funktioniert ... aber warum? – fossilet

3

Wenn Sie nur die Fernbedienung hinzugefügt, müssen Sie es fetch so dass Git weiß, welche Zweige stehen zur Verfügung:

git fetch upstream master 

Danach Sie

git checkout upstream/master 

ohne Probleme tun können.

+1

Würden diese Änderungen übernehmen von Upstream/Master origin/master? Dies ist nicht erwünscht. – fossilet

+1

Sorry, ich meinte 'holen' nicht' ziehen'. Vielen Dank. – nneonneo

+0

Derselbe Fehler wie in der Frage. – fossilet