2013-05-07 5 views
9

Ich habe einen Klon eines Remote-Repository. Ich habe seine Remote-URL auf meinen eigenen Server aktualisiert. Dann habe ich einige Commits gemacht und sie zu meinem Repository geschoben. Jetzt muss ich einige Änderungen aus dem ursprünglichen Repository ziehen. Aus einer bestimmten Branche. Ich kann es tun, indemGit ziehen bis bestimmte Commit (Tag)

git pull http://example.com/repo.git example_branch 

läuft Dies wird ziehen jedes neue begehen von example_branch (und eigentlich will ich ein Entwickler-Version erhalten). Aber diese example_branch hat Tags. Und ich muss aufhören, an einem bestimmten zu ziehen (bekomme in meinem Fall eine stabile Version). Wie kann ich das tun?

UPD Schließlich kam ich mit:

git remote add example http://example.com/repo.git 
git fetch 
git merge tag_name 
+0

Ich denke, Sie versuchen, das falsche Problem zu lösen. Warum möchtest du nur zu einem bestimmten Commit ziehen? – Arjan

+1

Nun, wenn ich alle Commits von einem Zweig ziehe, werde ich eine dev-Version bekommen. Aber ich brauche eine stabile Version. – Leksat

Antwort

10

git pull ist nur ein git fetch von einem git merge gefolgt. So können Sie einfach eine git fetch machen und dann das gewünschte Commit/Tag zusammenführen.

+0

Danke für die Erklärung! – Leksat

+18

Warum schreiben Sie nicht die Befehle dafür, anstatt einfach zu sagen, dass Sie das leicht machen können? –

2

Ein Git Repository kann mehrere Remote unterstützen.

In Ihrem Fall müssen Sie eine zweite Fernbedienung hinzufügen (mit dem alten Server):

git remote add old_server http://example.com/repo.git 

Dann können Sie einfach von ihm holen:

git fetch old_server 

Endlich merge the specific commit Sie wollen um in dein Projekt zu greifen.