2013-10-29 19 views
8

Zamierzam scalić dużą zmianę ze zdalnej gałęzi (niepochodzącej), a konkretniej z podanego znacznika.Git diff ze zdalnym znacznikiem

Istnieją dwa piloty następnie:

  1. origin
  2. proposal

Na proposal zdalnego, nazwę oddziału idea istnieje, ze znacznikiem tagged_idea.

Chodzi o to, że chcę przejrzeć nadchodzące zmiany między tagged_idea a bieżącym HEAD. Jak mogę to osiągnąć?

Próbowałem czegoś takiego jak git diff .../proposal/tags/tagged_idea, ale nie działało dobrze. Dowolny pomysł?

Innymi słowy, chciałbym zobaczyć rezultat scalenia, zanim nawet zrobię to w moim oddziale. Tak samo, jak gdybym zrobił ciągnienie git pull proposal tags/tagged_idea, ale bez wprowadzania zmian.

+0

gdzie chcesz zobaczyć zmiany, jeśli nic nie trzeba zmienić? przynajmniej mój przepływ pracy zwykle pozwala na wykonanie wszelkiego rodzaju scalania/zmiany/... w mojej lokalnej kopii, co jest dość łatwe do cofnięcia, jeśli mi się nie podoba. gdy mi się to podoba, zostaje on popchnięty do właściwego pilota. –

+0

Chciałbym czegoś podobnego do wyjścia pliku różnicowego. – aspyct

+0

co masz na myśli mówiąc "to nie działa dobrze"? –

Odpowiedz

10

Większość poleceń git działa tylko lokalnie, esp. rzeczy takie jak git diff i git merge.

lokalnym repozytorium może mieć wiele pilotów, ale aby pracować na nich, należy najpierw zsynchronizować lokalne repozytorium ze swoimi pilotami:

git fetch --all 

ile to będzie pobrać wszystkie Zestawienia zmian, że nie będzie stosować do bieżącego oddziału, chyba że bieżący oddział jest śledzący jeden z pilotów.

Po pobraniu zdalnych Zestawienia zmian i znaczniki, wystarczy uruchomić coś takiego:

git diff tagged_idea 

... i zobaczyć diff między aktualnym HEAD i znacznika tagged_idea, gdziekolwiek ostatnich przebywa.

+2

Jeśli używasz 'git fetch' zamiast 'git pull', nadal będziesz otrzymywać wszystkie nowe zatwierdzenia, ale git nie będzie próbował scalać (ani zmieniać w zależności, w zależności od' pull.rebase' i innych ustawień konfiguracji git) żadnej z tych zmian, nawet jeśli "wróć na oddział" śledzący ". (Istnieje niewielkie zastrzeżenie, jeśli normalnie śledzisz wymuszoną gałąź zdalną i automatyczne przegrupowanie z "inteligentnym" rebase'em, który może wykonać 'git pull --rebase', ale jest to * bardzo * niezwykły przepływ pracy.) – torek

+0

@ podążać dobrym punktem; Odpowiednio zaktualizowałem swoją odpowiedź –

1

Używam git ls-remote --tags proposal |grep tagged_idea, aby uzyskać skrót mieszania wersji, a następnie wykonaj git diff z hashem.

Powiązane problemy