Jak wybrać w git

Jak wybrać w git
Git Cherry Pick to funkcja scalania git. Ale istnieje niewielka różnica w Git Cherry Pick i Git Scal. Ponadto przypadek użycia jest inny. Zobaczmy, jak najpierw działa Git Merge, a następnie porównaj go z Git Cherry Pick. W ten sposób zrozumiesz, kiedy użyć git scage i kiedy użyć git wiśni.

Powiedzmy, że masz repozytorium Git. Pracujesz nad gospodarz oddział i dokonałeś kilku zobowiązań (A, b i c) na gospodarz oddział.

Teraz nagle masz świetny pomysł. Więc tworzysz inną gałąź nowy pomysł. Następnie zacząłeś popełnić zatwierdzenie (E, F i G) Tam.

Wprowadziłeś również pewne zmiany w gospodarz Oddział ponownie i dodał nowy zatwierdzenie H.

Teraz, jeśli twój nowy pomysł jest sukcesem, możesz chcieć połączyć nowy pomysł oddział do gospodarz oddział. Powiedzmy, połączyłeś to. Stworzy nowe zatwierdzenie I Jak widać na poniższym rysunku. Nowe zatwierdzenie będzie zawierać wszystko (wszystkie zmiany w zatwierdzeniach mi, F, I G) nowy pomysł.

Powiedzmy teraz, że nie chcesz połączyć wszystkich zobowiązań oddziału nowy pomysł do gospodarz oddział. Chcesz tylko scalić zmiany (tylko zmiany różnorodne) w zatwierdzeniu F do gospodarz oddział. Tutaj pojawia się Git Cherry Pick. Git Cherry Pick pozwala ci to zrobić. Po prostu znajdziesz skrót z zatwierdzenia, który chcesz wybrać i zastosować go do żądanej gałęzi. Bardzo prosta.

W tym artykule pokażę ci, jak wybrać w Git. Więc zacznijmy.

Git Cherry Pick Flow:

W tej sekcji zamierzam skonfigurować repozytorium Git w sposób, w jaki zrozumiesz, dlaczego Git Cherry Pick jest używany i jak wybierać w Git.

Najpierw zainicjuj puste repozytorium GIT Cherry-Pick-Demo/ następująco:

$ git init init cherry-pick-demo

Teraz przejdź do repozytorium w następujący sposób:

$ CD Cherry-Pick-Demo/

Teraz stwórz główny.C Plik z następującymi treściami:

Teraz dodaj plik do obszaru inscenizacji w następujący sposób:

$ git add .

Teraz popełnij zmiany w następujący sposób:

$ git commit -m „początkowe zatwierdzenie”

Teraz stwórz .Gitignore Plik z następującą zawartością:

Dodaj plik do obszaru inscenizacji.

$ git add .

Popełnić zmiany:

$ git commit -m 'dodał .plik Gitignore '

Jak widać, mam teraz 2 zatwierdzenia gospodarz oddział.

$ git log -linia

Teraz chcę przesunąć moje lokalne repozytorium git na zdalny serwer GIT, aby inne osoby mogły pracować nad tym repozytorium. Możesz również użyć github tutaj. Użyję do tego lokalnego serwera SSH.

Dodaj więc zdalne adresy URL repozytorium GIT w następujący sposób:

$ git zdalny dodaj pochodzenie [email protected]: ~/cherry-pick-demo.git

Teraz popchnij gospodarz oddział do zdalnego repozytorium GIT w następujący sposób:

$ git push pochodzenie mistrz

Powiedzmy teraz pion chce przyczynić się do projektu. Więc sklonował repozytorium Git na swoim komputerze.

$ git Clone [email protected]: ~/cherry-pick-demo.Git MyProject

Teraz Bob porusza się do swojego katalogu projektu.

$ cd myProject/

Ma też 2 zobowiązania, które dodałem.

$ git log -linia

Teraz Bob tworzy test oddział, aby wypróbować jego pomysły.

test $ git -kaset -b

Postanawia zmienić wartość zwrotną ze stałą Exit_success z stdlib biblioteka.

Dodaje zmiany do obszaru inscenizacji.

$ git add .

Popełnia zmiany.

$ git commit -m 'Używany exit_success zamiast 0 jako wartość zwrotna' '

Teraz postanawia użyć funkcji printmessage () Aby wydrukować wiadomość. Więc pisze funkcję.

Ponownie popełnia zmiany.

$ git add .
$ git commit -m 'Dodano funkcję printMessage ()'

Następnie Bob używa funkcji w programie.

Ponownie popełnia zmiany.

$ git add .
$ git commit -m 'UŻYWAJ FUNKCJA PRINTMESSAGE () do wydrukowania wiadomości' '

Teraz Bob ma następujące zatwierdzenia w test oddział.

Teraz Bob popycha gałąź testową do zdalnego repozytorium GIT.

$ git push pochodzenie

Teraz Bob dzwoni do ciebie i opowiada o niesamowitych zmianach, które wprowadził. Tak więc przyniosłeś zmiany w zdalnym repozytorium GIT do własnego lokalnego repozytorium.

$ git fetch

Teraz widzisz nowy oddział pochodzenie/test.

Znalazłeś także 3 nowe zobowiązania, które Bob zrobił.

$ git log -lineline pochodzenie/test

Teraz chciałbyś wiedzieć, jakie zmiany wprowadziły Bob.

$ git log -p pochodzenie/test

Postanawiasz nie zastąpić wartości zwracanej na exit_success, tak jak Bob.

Podoba Ci się koncepcja używania funkcji do drukowania wiadomości.

Podoba ci się również ten zatwierdzenie.

Więc chcesz połączyć 2 z 3 zobowiązań Bob. Jeśli używałeś git scal do scalania testu oddziału, wszystkie 3 zobowiązania zostaną zastosowane. Ale dzięki funkcji Git Cherry Pick możesz tylko połączyć zobowiązania, które lubisz.

Zauważ, że kiedy wybierasz popełnienie w Git, zawsze zaczynasz od najstarszego zatwierdzenia i przechodzisz do najnowszego małego małego.

Wcześniej wybrałem Cherry, główny.C Plik wygląda następująco.

Teraz Cherry wybierzmy najstarsze z 2 zobowiązań, 9A4E532 w następujący sposób:

$ Git Cherry-Pick 9A4E532

Konflikt scalania! To może się zdarzyć.

Teraz otwórz główny.C Złóż i napraw konflikt scalania.

Ostateczny plik powinien wyglądać w następujący sposób.

Teraz dodaj zmiany do obszaru inscenizacji.

$ git add.

Teraz popełnij zmiany w następujący sposób:

$ git cherry-pick-continue

NOTATKA: Możesz także użyć git zatwierdzić tutaj także. To zależy od Ciebie. wolę Git Cherry -Pick -Continue ponieważ automatycznie użyje komunikatu zatwierdzenia z Commit I -Cherry.

Teraz wpisz swoją wiadomość zatwierdzenia i zapisz plik.

Należy dodać nowe zatwierdzenie.

Teraz Cherry wybierz następne zatwierdzenie w następujący sposób:

$ git cherry-pick 08ba5e7

Brak konfliktu scalania. Świetnie! Nowe zatwierdzenie powinno zostać dodane automatycznie.

Jak widać, dostaję dokładnie to, czego chciałem. Połączyłem tylko zobowiązania, których potrzebowałem.

Tak właśnie wybierasz w Git. Dziękujemy za przeczytanie tego artykułu.