Szukaj…


Wprowadzenie

Wiśniowy wybór pobiera łatkę, która została wprowadzona w zatwierdzeniu i próbuje ponownie zastosować ją w gałęzi, w której aktualnie się znajdujesz.

Źródło: Git SCM Book

Składnia

  • git cherry-pick [--edit] [-n] [-m numer nadrzędny] [-s] [-x] [--ff] [-S [identyfikator klucza]] commit ...
  • git cherry-pick - kontynuuj
  • git cherry-pick - quit
  • git cherry-pick - abort

Parametry

Parametry Detale
-e, --edit Dzięki tej opcji, git cherry-pick pozwoli ci edytować komunikat zatwierdzenia przed zatwierdzeniem.
-x Podczas rejestrowania zatwierdzenia dodaj wiersz z napisem „(Cherry picked from commit…)” do pierwotnego komunikatu zatwierdzenia, aby wskazać, z którego zatwierdzenia wybrano tę zmianę. Odbywa się to tylko dla wyborów wiśniowych bez konfliktów.
--ff Jeśli bieżący HEAD jest taki sam, jak element nadrzędny zatwierdzonego wyboru cherry, zostanie wykonane szybkie przewijanie do przodu do tego zatwierdzenia.
--kontyntynuj Kontynuuj trwającą operację, korzystając z informacji w .git / sequencer. Można go używać do kontynuowania po rozwiązaniu konfliktów w przypadku nieudanego wyboru lub cofnięcia.
--porzucić Zapomnij o trwającej operacji. Można go użyć do wyczyszczenia stanu sekwencera po nieudanej operacji wybierania lub przywracania.
--anulować Anuluj operację i powróć do stanu sprzed sekwencji.

Kopiowanie zatwierdzenia z jednej gałęzi do drugiej

git cherry-pick <commit-hash> zastosuje zmiany dokonane w istniejącym zatwierdzeniu do innej gałęzi, podczas nagrywania nowego zatwierdzenia. Zasadniczo możesz kopiować zatwierdzenia z oddziału do oddziału.

Biorąc pod uwagę następujące drzewo (Źródło)

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 [master]
           \
            76cada - 62ecb3 - b886a0 [feature]

Powiedzmy, że chcemy skopiować b886a0 do master (na górze 5a6057 ).

Możemy biegać

git checkout master
git cherry-pick b886a0

Teraz nasze drzewo będzie wyglądać mniej więcej tak:

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 - a66b23 [master]
           \
            76cada - 62ecb3 - b886a0 [feature]

Gdzie nowy zatwierdzenie a66b23 ma tę samą treść (diff źródłowy, komunikat zatwierdzenia) co b886a0 (ale inny rodzic). Zauważ, że wybieranie- b886a0 tylko zmiany w tym zatwierdzeniu (w tym przypadku b886a0 ), nie wszystkie zmiany w gałęzi funkcji (w tym celu będziesz musiał użyć zmiany lub połączenia).

Kopiowanie zakresu zatwierdzeń z jednej gałęzi do drugiej

git cherry-pick <commit-A>..<commit-B> umieści każde zatwierdzenie po A i do B włącznie włącznie na aktualnie wyewidencjonowanym oddziale.

git cherry-pick <commit-A>^..<commit-B> umieści zatwierdzenie A i każde zatwierdzenie do B włącznie z aktualnie wyewidencjonowanym odgałęzieniem.

Sprawdzanie, czy wymagany jest czereśniowy kilof

Przed rozpoczęciem procesu wybierania wiśniowego możesz sprawdzić, czy zatwierdzenie, które chcesz wybrać, już istnieje w gałęzi docelowej, w którym to przypadku nie musisz nic robić.

git branch --contains <commit> wyświetla lokalne gałęzie, które zawierają określone zatwierdzenie.

git branch -r --contains <commit> zawiera również zdalne gałęzie śledzenia na liście.

Znajdź zobowiązania, które mają być zastosowane w górę

Polecenie git cherry pokazuje zmiany, które nie zostały jeszcze wybrane.

Przykład:

git checkout master
git cherry development

... i zobacz wyjście trochę tak:

+ 492508acab7b454eee8b805f8ba906056eede0ff
- 5ceb5a9077ddb9e78b1e8f24bfc70e674c627949
+ b4459544c000f4d51d1ec23f279d9cdb19c1d32b
+ b6ce3b78e938644a293b2dd2a15b2fecb1b54cd9

Zobowiązania, które są przy + będą tymi, które nie zostały jeszcze wybrane do development .

Składnia:

git cherry [-v] [<upstream> [<head> [<limit>]]]

Opcje:

-v Pokaż podmioty zatwierdzające obok SHA1.

<upstream> Upstream oddział, aby wyszukać równoważne zatwierdzenia. Domyślnie gałąź upstream HEAD.

<głowa> Działająca gałąź; domyślnie HEAD.

<limit> Nie zgłaszaj zatwierdzeń do (włącznie) limitu.

Sprawdź dokumentację git-cherry, aby uzyskać więcej informacji.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow