2013-05-07 16 views
9

Mam klon zdalnego repozytorium. Zaktualizowałem jego zdalny adres URL na mój własny serwer. Potem zrobiłem kilka zatwierdzeń i pchnąłem je do mojego repozytorium. Teraz muszę pobrać pewne zmiany z początkowego repozytorium. Z określonej gałęzi. mogę to zrobić poprzez uruchomienieGit pull do pewnego zatwierdzenia (tag)

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

to będzie ciągnąć każdy nowy popełnić od example_branch (i faktycznie dostanę wersję dev). Ale ten example_branch ma tagi. I muszę przestać ciągnąć do pewnej (uzyskać stabilne wydanie w moim przypadku). Jak mogę to zrobić?

UPD Wreszcie wpadłem:

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

Myślę, że próbujesz rozwiązać niewłaściwy problem. Dlaczego chcesz ciągnąć tylko do określonego zatwierdzenia? – Arjan

+1

Cóż, jeśli wyciągnę wszystkie zatwierdzenia z oddziału, dostanę wersję dev. Ale potrzebuję stabilnego wydania. – Leksat

Odpowiedz

10

git pull tylko git fetch następnie git merge. Możesz więc łatwo wykonać git fetch, a następnie połączyć żądany commit/tag.

+0

Dzięki za wyjaśnienie! – Leksat

+18

Dlaczego nie napisać polecenia, aby to zrobić zamiast po prostu powiedzieć, że można to łatwo zrobić? –

2

Repozytorium git może obsługiwać wiele pilotów.

W twoim przypadku trzeba dodać drugi zdalny (z starego serwera):

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

Następnie można po prostu pobrać z niej:

git fetch old_server 

wreszcie merge the specific commit chcesz złapać swój projekt.