2014-10-20 21 views
32

W gerrit Androida ex: link, aby pobrać łatę, widzę 4 opcje.gerrit - git (pull vs checkout vs cherrypick), który jest za co?

  1. repo pobieranie
  2. Zamówienie
  3. ciągnąć
  4. cherry-pick

Jaka jest różnica między nimi?

Oto co o nich myślę. Proszę wyjaśnić

  1. repo do pobrania -> Downloads pełny kod źródłowy (wszystkich repo git w projekcie) Do tej popełnić
  2. kasę -> Nie wiesz, co to jest.
  3. pull -> Nie wiesz, co robi?
  4. cherry-pick -> Próbuje pobrać tylko tę zmianę i połączyć ją z kodem źródłowym.

Wiem, że pull and checkout różnią się od pick-up. Ale jak się różnią?

+2

Uwaga aby potencjalni Główni odpowiadający: to pytanie jest o Gerrit, nie Git. Jeśli zamieścisz odpowiedź wyjaśniającą, co te terminy oznaczają w Git, nie odpowiadasz na to pytanie. –

Odpowiedz

23

Masz rację co do pierwszego. Oto reszta:

  1. Zamówienie: Pobiera najnowsze zmiany. Powinieneś już pobrać to repozytorium. To nie powoduje scalenia tych nowych zmian, ale powoduje, że katalog roboczy je odzwierciedla. Możesz je później połączyć w wolnym czasie.

  2. Pull: Pobiera zmiany i łączy im do lokalnego oddziału tej samej nazwie.

  3. Cherry-pick: Pobiera commit i odtwarza go na szczycie aktualnego miejscowego oddziału, więc tworząc zupełnie nowy popełnić co zdarza się mieć same zmiany jak jeden to naciągane .

Są trochę inne niż to, co w rzeczywistości oznaczają w git. checkout i cherry-pick nie pobierają automatycznie zmian. checkout po prostu przyjmuje HEAD do zatwierdzenia, które określasz, czyniąc katalog roboczy dokładnie takim, jaki był w tym zatwierdzeniu. Podobnie, cherry-pick jest używany do powtarzania commitów, do których masz już dostęp lokalny.

+1

1. Kasa nie tylko _ pobrała zestaw łatek, ale również _ sprawdza dokładnie_ zatwierdzenie zestawu poprawek. 2. Zatwierdzenie zestawu łat jest scalone z bieżącym nagłówkiem. Nazwy oddziałów nie mają nic wspólnego z rzeczami. –

4

Z git masz własną wersję repozytorium. Synchronizacja z repozytoriami innych użytkowników. Z fetch aktualizujesz swoje zdalne odniesienia, np.odświeżaj to, co otrzymali inni. Z checkout przechodzi się do konkretnej wersji. Chcesz to zrobić, jeśli właśnie zacząłeś używać tego.

Teraz, jeśli już korzystasz z oddziału zdalnego, może być konieczna tylko aktualizacja lokalnego oddziału. To właśnie robi dla ciebie pull. Stosuje wszystkie zmiany w oddziale zdalnym do lokalnego. Potrzebujesz tego, jeśli używasz go już tylko chcesz zaktualizować.

cherry-pick pozwala wybrać jedną zmianę z dowolnego miejsca w repozytorium i zastosuje ją w lokalnym oddziale. Jest to przydatne, jeśli z jakiegokolwiek powodu jesteś w innej branży, ale wciąż potrzebujesz tej konkretnej zmiany. Pamiętaj, że jeśli wybierzesz najprostszą odmianę bez zmiany, ta zmiana nie będzie trwała. Jest on przypisany do lokalnego repozytorium, ale nie do zdalnego (może to być jednak potrzebne w przypadku).

Zobacz więcej na temat podstaw git np here

1

kasie: chcesz go używać, gdy są w zależności od konkretnego zmiana w oddziale. powiedzmy, że twój kolega sprawdził kilka interfejsów API, z których możesz skorzystać, i możesz skorzystać z opcji ZMIEŃ nowy oddział lokalny i zacznij pracować nad zmianą.

Cherrypick: chcesz zastosować konkretną CHANGE w swoim lokalnym oddziale lub w określonym oddziale wydania, a następnie w czipie. Wyobraź sobie, że masz łatkę w wersji 1.1 i chcesz zastosować tę poprawkę/CHANGE do gałęzi 2.0, możesz ją po prostu ukręcić. Spowoduje to utworzenie nowej ZMIANY w gałęzi 2.0 zawierającej poprawkę.

tutaj jest graficznym przedstawieniem: http://think-like-a-git.net/sections/rebase-from-the-ground-up/cherry-picking-explained.html