2009-12-18 12 views
7

Es gibt einen Zweig auf der Fernbedienung, an dem ich gerne arbeiten würde. Es ist alt und ich habe keine alte Kopie davon auf meinem lokalen Rechner. Es ist wirklich weit hinter dem Meister. Immer wenn ich versuche, es zu ziehen, bekomme ich Konflikte. Ich möchte nur ein genaues Duplikat der Remote-Zweigstelle auf meinem lokalen System erstellen. Warum würde das zu Konflikten führen?Wie ziehe ich einen entfernten Zweig in Git ohne Konflikte?

Ich habe versucht:

git pull origin branch_name:branch_name 

, dass ein neuen Zweig auf meinem lokalen Rechner mit dem richtigen Namen erstellt, aber es führte zu Konflikten.

Antwort

10
git fetch origin 
git checkout -b newoldbranch oldoldbranch 
+0

Ich musste Remote angeben: 'git checkout -b Zweigherkunft/Zweig' – Francisco

+0

@Francisco, ja, oldoldbranch bedeutet vollständige Zweigspezifikation, wie es im lokalen Repository gespeichert ist. –

+0

Danke für die Klärung. Ich habe es nicht so angenommen. – Francisco

2

Können Sie es nicht einfach ausprobieren?

git checkout branch_name 

?

+1

Diese Art von arbeitete, aber ich musste es ändern: git Verzweigung branch_name Herkunft/Branchenname git checkout Branch_name –

+1

Es ist nicht, dass ich etwas dagegen habe, aber ist es nicht lustig, dass Sie diese Antwort akzeptiert, obwohl Sie es ändern mussten zu meinen? ;-) git branch + git checkout ist gleichbedeutend mit git checkout -b ;-) –

4

git pull repo branch ist im Grunde abgekürzt für git fetch repo branch und git merge repo/branch. Ich bin nicht einer, der oft RTFM sagt, vor allem mit Git, aber es ist die erste Zeile der git-pull docs. "git-pull - Abrufen von und Zusammenführen mit einem anderen Repository oder einer lokalen Verzweigung". Die implizite Zusammenführung verursacht den Konflikt. Sie wollen nur eine fetch & checkout wie Michael sagte.

+2

Danke. Ich hasse Git. –

+2

Ja, das wird es tun. Vertrau mir, es lohnt sich. So viel einfacher als SVN, sobald Sie es bekommen. – Schwern