CodeGym /Kursy /Frontend SELF PL /Praca z gałęziami git w IntelliJ IDEA

Praca z gałęziami git w IntelliJ IDEA

Frontend SELF PL
Poziom 20 , Lekcja 3
Dostępny

11.1 Gałęzie w git

Praca z gałęziami (branches) w Git — to jeden z kluczowych aspektów zarządzania wersjami, który pozwala na równoległe prowadzenie kilku linii rozwojowych w jednym repozytorium. Rozgałęzianie sprawia, że Git jest potężnym narzędziem do współpracy, eksperymentów i zarządzania różnymi wersjami projektu.

Gałęzie w git

Możesz myśleć o gałęziach w git jak o folderach, gdzie git kopiuje twój projekt. Masz główny folder twojego projektu w twoim lokalnym repozytoriummaster, a git może stworzyć kopie tego folderu, abyś mógł tam eksperymentować i nie uszkodzić głównego, dobrze działającego kodu. Takie foldery-kopie nazywają się gałęziami — branches.

Gałęzie — to alternatywne wersje kodu. Powiedzmy, że chcesz coś przeprojektować w dużym projekcie, przeprowadzić eksperyment, co do którego nie jesteś do końca pewny. Jak byś to zrobił bez git?

Można by skopiować projekt do nowego folderu i spróbować wszystko w nim zmienić. Jeśli rezultat ci się spodoba, to możesz go skopiować do głównego folderu. Jeśli nie, zapomnij o nim, albo całkowicie usuń.

Albo weźmy przykład z życia. Powiedzmy pisanie książki:

  1. Masz rękopis książki (główna gałąź).
  2. Chcesz spróbować zmienić zakończenie (tworzenie nowej gałęzi).
  3. Piszesz nowe zakończenie w oddzielnym dokumencie (praca w nowej gałęzi).
  4. Jeśli nowe zakończenie jest lepsze, zastępujesz stare w rękopisie (scalanie gałęzi).
  5. Usuwasz oddzielny dokument z nowym zakończeniem (usunięcie gałęzi).

11.2 Tworzenie gałęzi

Tworzenie gałęzi w IntelliJ IDEA jest bardzo proste:

Tworzenie gałęzi

Wpisz nazwę gałęzi:

Tworzenie gałęzi

IntelliJ IDEA od razu wyświetli nazwę twojej bieżącej gałęzi na górze w menu:

Tworzenie gałęzi

Co tam było wcześniej?

Była tam nazwa twojej pierwszej i głównej gałęzi — master.

Teraz wyświetla się test, co oznacza, że Git (pod nadzorem IntelliJ IDEA) nie tylko stworzył nową gałąź, ale także od razu się na nią przełączył.

Dodajmy jakiś kod do pliku main.html w bieżącej gałęzi (test) i zatwierdźmy go:

Tworzenie gałęzi

11.3 Przełączanie się między gałęziami

Krok 1. Wybieramy gałąź.

Teraz przełączmy się na naszą starą gałąź. Kliknijmy na górne menu i co tam widzimy?

Przełączanie między gałęziami

Nie bój się — to wszystko jest proste:

Local — to lista gałęzi twojego lokalnego repozytorium git. Są tam dwie:

  • test
  • master

Remote — to twoje zdalne repozytorium, które znajduje się na serwerze GitHub. Tam wypchnęliśmy twoje zmiany, ale nowej gałęzi tam nie ma, co jest logiczne. Zdalne repozytorium nosi nazwę origin, i jest tam tylko gałąź master.

Recent — to po prostu lista nazw ostatnich gałęzi, z którymi pracowałeś: ten punkt IntelliJ IDEA dodaje dla wygody i szybkości.

Nazwa origin/master po prawej od nazwy lokalnego repozytorium — to nazwa zdalnego repozytorium, z którym jest teraz zsynchronizowane, i gdzie będą wypychane zmiany.

Krok 2. Ładujemy kod gałęzi do bieżącego folderu.

Przełączanie między gałęziami

Krok 3. Sprawdzamy.

U mnie wyświetla się gałąź „master” i stary kod:

Sprawdzamy

11.4 Scalanie gałęzi

Spróbujmy teraz połączyć kod z naszych dwóch gałęzi.

Krok 1. Na początek dodajmy do naszego projektu jeszcze jeden plik — index.html i napiszmy w nim jakiś kod:

  • Tworzymy plik index.html
  • Piszemy w nim kod <h1>Hello</h1>
  • Zatwierdzamy plik

Tak wyglądają dwa moje pliki w gałęzi master:

Scalanie gałęzi

Krok 2. Scalanie gałęzi.

Scalimy do naszej bieżącej gałęzi (master) zmiany, które zostały dokonane w gałęzi test.

Skorzystamy z tej okazji z górnego menu i komendy „Merge ‘test’ into ‘master’”:

Scalanie gałęzi

Krok 3. Sprawdzamy rezultat.

Scalanie gałęzi

Sprawdzamy:

  • Na górze nadal wyświetla się gałąź master
  • Plików mamy 2: index.html i main.html
  • Plik main.html zawiera kod, który został dodany w gałęzi test

11.5 Konflikty przy scalaniu

Czasami przy scalaniu gałęzi mogą wystąpić konflikty.

Jeśli wprowadzisz zmiany w jednym pliku w różnych gałęziach i spróbujesz je scalić, może powstać konflikt.

Konflikt plików tekstowych

Git to bardzo sprytny system — rozumie typy plików. Jeśli wprowadzisz zmiany w różnych miejscach plików, które uważa za tekstowe, po prostu przeniesie zmiany z jednego pliku do drugiego w odpowiednie miejsce (tak, jakby to zrobił człowiek).

Konflikt plików binarnych

Ale jeśli poprawisz gdzieś obrazek lub dokument, Git nie będzie próbował połączyć ich części w jeden: po prostu zaproponuje ci wybór, którą wersję pliku chcesz zachować w bieżącej gałęzi.

Ręczne rozwiązywanie konfliktów

Jeśli wprowadzisz zmiany w tym samym miejscu pliku tekstowego, Git nie będzie w stanie poprawnie połączyć różnych wersji i zaproponuje ci to zrobić:

Konflikty przy scalaniu

Tak to może wyglądać:

Konflikty przy scalaniu

Co tu widzisz:

  • Z lewej — zawartość pliku main.html gałęzi master
  • Z prawej — zawartość pliku main.html gałęzi test
  • W środku IntelliJ IDEA proponuje napisać ostateczną wersję kodu (można kliknąć na przyciski „>>” i „<<”, aby automatycznie wstawić zmiany z jakiegoś pliku)

Wybrałem wersję master i dopisałem kod ręcznie. Tak to wyszło:

Konflikty przy scalaniu

11.6 Historia zmian

Jeszcze coś przydatnego i interesującego. Możesz zobaczyć historię zmian dowolnego pliku, klikając na przycisk Show History. Są dwa miejsca, gdzie może się ona znajdować. Znajdź je.

Tak wygląda historia zmian u mnie dla pliku main.html:

Konflikty przy scalaniu

Wyjaśnienia:

  • Z lewej widzisz historię zmian konkretnego pliku:
    • Im zmiana nowsza, tym wyżej, im starsza – tym niżej
    • Wyświetla się tu także historia scalania gałęzi
  • Z prawej — zmiany wprowadzone w konkretnym commicie
1
Опрос
Elementy dekoracyjne,  20 уровень,  3 лекция
недоступен
Elementy dekoracyjne
Elementy dekoracyjne
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION