2012-04-17 62 views
9

Jak pobrać/wyładować zdalne repozytorium bez tworzenia lokalnego oddziału remote?Git Fetch/Checkout bez tworzenia zdalnego?

przypadków użycia: Mam repo na GitHub, ktoś rozwidlony go i dodaje nową funkcję i zainicjował żądanie ciągnąć. Nie mogę automatycznie scalić go, ponieważ są pewne drobne problemy, które chciałabym rozwiązać jako pierwsze.

To jednorazowa aktywność Nigdy nie będę potrzebować tego zdalnego repozytorium, więc nie chcę tworzyć lokalnego oddziału remote.

Zasadniczo chciałbym zrobić:

  1. Kopiowanie plików z zdalnego repozytorium i przepisać własne (bez żadnych informacji związanych z git-).
  2. zobacz różnicę z moją obecną głową.
  3. napraw coś i zrób to.

Jak to zrobić?

git checkout git://github.com/xxx/xxx.git nie działa w ogóle (nie z błędem)

git fetch git://github.com/xxx/xxx.git działa, ale niczego

Odpowiedz

10

Chcesz użyć FETCH_HEAD nie zaktualizować.

Po uruchomieniu git fetch ... tworzony jest magiczny odnośnik o nazwie FETCH_HEAD.

Spróbuj na przykład:

git fetch git://github.com/xxx/xxx.git && git merge FETCH_HEAD 
+2

Czy to nie jest to samo co 'git pull git: // github.com/xxx/xxx.git'? –

5

Kolejną przyjemną sposób (przynajmniej na/z Github) jest pobieranie tak:

git fetch repo pull/7324/head:pr-7324 

Gdzie:

repo punkty do zdalnego repo np git://github.com/xxx/xxx.git.

pull/7324/head to zdalne żądanie ściągnięcia.

to lokalny oddział żądania pobrania.

Następnie możesz użyć lokalnego oddziału PR, aby zrobić z nim co chcesz.

Źródło: dostosowane z this discussion.

+0

Zapytanie o polecenie Pull zostało omówione na stronie: http: // stackoverflow.com/questions/6743514/how-can-i-fetch-an-unmerged-pull-request-for-a-branch-i-dont-own –

7

Dla każdego serwera Git:

git fetch git://host.com/path/to/repo.git remote-branch-name:local-branch-name 
git checkout local-branch-name 
Powiązane problemy