Wprowadzenie do GIT Cherry-pick
W tym artykule szczegółowo omówimy GIT Cherry-pick. Wielu programistów pracuje nad tym samym oprogramowaniem z różnych zakątków świata. Jak zatem zarządzać kodami? Jak sprawią, że inni zrozumieją wprowadzone przez siebie zmiany? Jak zatwierdzić kody i utrzymywać różne wersje? Jak scalić kody?
Aby rozwiązać te problemy, GIT wszedł do świata programistów. GIT to wyjątkowy system zarządzania kodem źródłowym (SCM) i rozproszony system kontroli wersji. GIT został stworzony przez Linuksa Torvalda, osobę, która opracowała jądro Linuksa. Oczywiście jest to narzędzie typu open source, w którym każdy programista może przyczynić się do budowy oprogramowania z dowolnego miejsca na świecie.
GIT ma wiele funkcji. Może mieć wiele oddziałów. Deweloper może pisać kody po utworzeniu własnego oddziału w systemie lokalnym i scalenie go z odgałęzieniem głównym lub innymi oddziałami zdalnego repozytorium GIT.
Co to jest GIT Cherry-pick?
Wyobraź sobie, że prace projektowe trwają nad napisaniem scenariusza dotyczącego historii i ewolucji telefonów komórkowych. Tak więc wiele osób pracuje nad tym samym projektem i wszyscy pracują osobno. Jednak w końcu skrypt każdego użytkownika zostanie skompilowany razem.
Teraz członek A pisze o telefonach Apple i nagle zdaje sobie sprawę, że może być lepiej. Poinformował o tym pozostałych członków zespołu, którzy pracują nad tym samym projektem. Inny członek X powiedział mu, że pisze skrypt na telefonach z Androidem i poprosił członka A o obejrzenie.
Następnie członek A zajrzał do skryptu członka drużyny i stwierdził, że niektóre części są takie same z pewnymi zmianami, które są naprawdę dobre. Dlatego wybrał te zmiany i wkleił we własnym skrypcie. Jest to to samo, co w GIT nazwano cherry-pick w branży kodowania oprogramowania.
Git-cherry-pick to potężne polecenie git, a cherry-picking to proces, który pozwala pobrać zatwierdzenie z gałęzi i zastosować go do innej gałęzi. Krótko mówiąc, może istnieć wiele gałęzi, w których programiści zatwierdzają swoje kody. Teraz jeden programista powinien zatwierdzić swoje kody w oddziale A, jednak przez pomyłkę popełnił kody w oddziale B. W tym czasie cherry-pick może przełączyć zatwierdzenie do właściwej gałęzi.
Użyj poniższej komendy (w systemie Unix), aby poznać różne opcje git-cherry-pick,
Komenda:
$man git-cherry-pick
Składnia polecenia cherry-pick,
Składnia:
git cherry-pick (–edit) (-n) (-m parent-number) (-x)
Kiedy używamy GIT Cherry-pick?
Git-cherry-pick jest użytecznym narzędziem, ale nie jest najlepszą praktyką przez cały czas. git-cherry-pick może być użyty w następujących scenariuszach,
- Aby poprawić, gdy zatwierdzenie dokonane przypadkowo w innym oddziale.
- Preferowane tradycyjne połączenia
- Aby zastosować zmiany w istniejącym zatwierdzeniu.
- Duplikat zatwierdzenia
- Naprawa błędów
Jak działa GIT Cherry-pick?
Wada znaleziona w kodzie w środowisku produkcyjnym i poprawka musi zostać zaimplementowana. Po wprowadzeniu zmiany i usunięciu usterki nadszedł czas, aby przywrócić tę zmianę kodu z powrotem do środowiska programistycznego, aby wada nie pojawiła się ponownie w środowisku produkcyjnym w przyszłości.
Pierwsza opcja to proste scalanie git i jest to idealne rozwiązanie, jeśli działa. Istnieją jednak także inne zmiany wprowadzone w środowisku produkcyjnym i nie można ich przywrócić do środowiska programistycznego podczas łączenia. W takim przypadku wybór wiśni jest właściwą opcją.
Cherry-pick przynosi zatwierdzenie, które zostało stworzone wyłącznie do naprawy błędów. Nie wybiera innych zatwierdzeń.
Oto ilustracja
Ryc. 1: G i H są zobowiązaniami oddziału produkcyjnego. Zobowiązania działu rozwoju od A do F. Problem występuje w dziale Produkcja. W zatwierdzeniu H opracowano poprawkę, która musi być zastosowana w gałęzi rozwoju, ale nie wymaga się zastosowania zatwierdzenia G.
Ryc. 2: Teraz zatwierdzenie H jest wybierane w gałęzi Rozwoju i wynikowe zatwierdzenie to H '. Zmiany Commit G nie są uwzględniane w gałęzi Development.
Jak korzystać z GIT Cherry-pick z przykładem?
Załóżmy, że mamy dwie gałęzie (master i new_feature) (polecenie użyte do zobaczenia gałęzi-git)
Przez pomyłkę dokonaliśmy zatwierdzenia (Podświetlone) w gałęzi new_feature. (polecenie użyte do wyświetlenia zatwierdzonego dziennika log-git)
Jednak powinien on znajdować się tylko w gałęzi master. Najpierw skopiuj podświetloną SHA w notatniku.
Teraz użyjemy komendy git-cherry-pick, aby przenieść to zatwierdzenie do gałęzi master, jednak wcześniej musimy przełączyć się na gałąź master (komenda używana do przełączania kasowania gałęzi git < nazwa gałęzi > )
Teraz widzimy, że to samo zatwierdzenie jest dostępne w gałęzi master (polecenie used-git log)
Aby uzyskać więcej przykładów poleceń git cherry-pick, zobacz poniższy link,
https://git-scm.com/docs/git-cherry-pick
Ważne rzeczy do zapamiętania
Trzeba pamiętać o trzech rzeczach podczas korzystania z narzędzia „pick-pick” i pracy w zespole.
1. Standaryzuj komunikat zatwierdzenia: Lepiej jest użyć standardowego komunikatu zatwierdzenia i -x, jeśli wybieramy z publicznego oddziału.
git cherry-pick -x
Pozwoli to uniknąć łączenia konfliktów w przyszłości.
2. skopiuj notatki: Czasami niektóre z pick-cherry mają notatki, a kiedy uruchamiamy cherry-pick, notatki nie są kopiowane. Dlatego lepiej go używać.
git notes copy
3. Wybierz wiele zatwierdzeń, gdy są one tylko liniowe: Chcemy wybrać wiele zatwierdzeń, takich jak G, H (Ryc. 1), jeśli są liniowe, użyj tylko poniższego polecenia,
git cherry-pick G^..H
Wniosek
Załóżmy, że chcemy wybrać konkretny zatwierdzenie z innej gałęzi i zastosować się do bieżącej gałęzi, oto kroki zalecane,
1. Znajdź skrót zatwierdzenia, który musi być najpierw wybrany.
2. Przejdź do gałęzi docelowej.
3. git cherry-pick -x
Rozwiąż konflikty, jeśli się pojawią. Jeśli w oryginalnym zatwierdzeniu znajdują się notatki, należy je skopiować.
git notes copy
Polecane artykuły
To jest przewodnik po GIT Cherry-pick. Tutaj omawiamy jego działanie i sposób użycia git cherry-pick z szczegółowymi przykładami. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -
- Narzędzia Git
- Terminologia Git
- Tag Git Checkout
- Co to jest Git Branch?