2010-02-19 10 views
145

Ich habe ein Projekt auf GitHub gehostet. Ich habe einen Zweig auf einem Computer, schob dann meine Änderungen an Github mitWie lade ich einen Zweig mit Git herunter?

git push origin branch-name 

Jetzt bin ich auf einem anderen Computer, und ich möchte diesen Zweig zum Download bereit. Also habe ich versucht:

git pull origin branch-name 

... aber all dies tat wurde mein Master-Zweig mit den Änderungen in meinem neuen Zweig überschrieben.

Was muss ich tun, um meine Remote-Zweigstelle richtig zu ziehen?

Antwort

263

Dank einer related question, fand ich heraus, dass ich brauche die Remote-Zweig als neue lokale Niederlassung auf „Kasse“, und geben Sie einen neuen lokalen Zweignamen an.

git checkout -b newlocalbranchname origin/branch-name 

Oder Sie tun können:

git checkout -t origin/branch-name 

Letzteres wird ein Zweig erstellen, die auch festgelegt wird, um die Remote-Zweig zu verfolgen.


Update: Es ist 5 Jahre her, dass ich ursprünglich diese Frage gestellt. Ich habe viel gelernt und Git hat sich seitdem verbessert. Mein gewohnter Workflow ist jetzt ein wenig anders.

Wenn ich die Remote-Zweige holen will, muss ich einfach laufen:

git pull 

Dies wird alle entfernten Niederlassungen holen und den aktuellen Zweig zusammenführen. Es wird eine Ausgabe angezeigt, die etwa wie folgt aussieht:

From github.com:andrewhavens/example-project 
    dbd07ad..4316d29 master  -> origin/master 
* [new branch]  production -> origin/production 
* [new branch]  my-bugfix-branch -> origin/my-bugfix-branch 
First, rewinding head to replay your work on top of it... 
Fast-forwarded master to 4316d296c55ac2e13992a22161fc327944bcf5b8. 

Jetzt git über mein neues my-bugfix-branch weiß. Um auf diesen Zweig zu wechseln, kann ich einfach laufen:

git checkout my-bugfix-branch 

Normalerweise müsste ich den Zweig erstellen, bevor ich es überprüfen konnte, aber in neueren Versionen von Git, es ist klug genug, um zu wissen, dass Sie wollen Auschecken einer lokalen Kopie dieser Remote-Zweigstelle.

+2

Ja, ich habe es versucht. Dies ist einfacher im Vergleich zu meiner Lösung. – ardsrk

+0

Ich benutze GIT 1.7.2.5, und der Befehl, der für mich funktionierte war: '' git branch --track XX Herkunft/XX''. Dein Befehl gibt mir einen Fehler. – dimitarvp

+6

Wenn Sie nicht alle Remote-Zweigstellen heruntergeladen haben, kann dies fehlschlagen. Führen Sie "git remote update" aus, um sie zu entfernen. –

-6

Erstellen Sie ein neues Verzeichnis und führen Sie stattdessen einen Klon aus.

git clone (Adresse des Ursprungs) (Name der Niederlassung)

+3

Sie können nicht _just einem branch_ in Git klonen. Nur ein vollständiger Repository-Klon kann erstellt werden. –

19

Sie git remote wie verwenden:

git fetch origin 

und dann Setup eine lokale Niederlassung der Remote-Zweig zu verfolgen wie unten:

Sie hätten jetzt den Inhalt der Remote-GitHub-Verzweigung in local-Branch-Name.

Sie zu diesem lokalen Zweig-Namen wechseln könnte und der Arbeit beginnen:

git checkout [local-branch-name] 
50

Für alle Git-Neulinge wie mich, hier sind einige Schritte, die Sie folgen konnte ein Remote-Repository zum Download, und wechseln Sie dann auf den Zweig, den Sie anzeigen möchten. Sie missbrauchen Git wahrscheinlich irgendwie, aber es hat den Job für mich erledigt! :-)

Clone auf das gewünschte Repository für den Code herunterladen möchten (in diesem Beispiel ich die LRResty project auf Github ausgewählt haben):

$ git clone https://github.com/lukeredpath/LRResty.git 
$ cd LRResty 

überprüfen, was Zweig Sie an dieser Stelle verwenden (es sollte sein der Master-Zweig):

$ git branch  
* master 

Schauen Sie sich von der Filiale, in meinem Fall, dass es heißt 'arcified':

$ git checkout -b arcified origin/arcified 
Branch arcified set up to track remote branch arcified from origin. 
Switched to a new branch 'arcified' 

Bestätigen Sie nun mit der Niederlassung sind Sie wollten:

$ git branch  
* arcified 
    master 

Wenn Sie den Code später erneut aktualisieren möchten, führen git pull:

$ git pull 
Already up-to-date. 
+0

"Sie misshandeln Git wahrscheinlich irgendwie" - nein, das stimmt genau. –

6

Git-Klon und cd im Repo Name:

$ git clone https://github.com/PabloEzequiel/iOS-AppleWach.git 
Cloning into 'iOS-AppleWach'... 
$ cd iOS-AppleWach 

wechseln Sie in den Zweig (a GitHub Seite), die ich will:

$ git checkout -b gh-pages origin/gh-pages 
Branch gh-pages set up to track remote branch gh-pages from origin. 
Switched to a new branch 'gh-pages' 

und ziehen Sie den Zweig:

$ git pull 
Already up-to-date. 

ls:

$ ls 
index.html  params.json  stylesheets 
5

Navigieren Sie zu dem Ordner auf Ihrer neuen Maschine, die Sie auf git bash von git herunterladen möchten.

Verwenden Sie den folgenden Befehl, um den Code von jedem Zweig herunterladen möchten Sie

git clone 'git ssh url' -b 'Branch Name'

Es wird den jeweiligen Zweig Code herunterladen.

Verwandte Themen