CodeGym /Kursy /Python SELF PL /Praca z gałęziami git w PyCharm

Praca z gałęziami git w PyCharm

Python SELF PL
Poziom 12 , 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 równolegle prowadzić kilka linii rozwoju w jednym repozytorium. Rozgałęzienie czyni Git potężnym narzędziem do współpracy, eksperymentów i zarządzania różnymi wersjami projektu.

Możesz myśleć o gałęziach w Git jako o folderach, gdzie Git kopiuje twój projekt. Masz główny folder swojego projektu w lokalnym repozytoriummaster. Git może stworzyć kopie tego folderu, byś mógł eksperymentować bez ryzyka uszkodzenia głównego kodu. Takie foldery-kopie nazywane są gałęziamibranches.

Gałęzie to alternatywne wersje kodu. Załóżmy, że chcesz coś zmienić w dużym projekcie lub przeprowadzić eksperyment, co do którego nie jesteś całkowicie pewien. Co byś zrobił bez Git?

Można skopiować projekt do nowego folderu i spróbować zmienić wszystko tam. Jeśli efekt Ci się spodoba, można skopiować go do głównego folderu. Jeśli nie — zapomnieć o nim lub po prostu usunąć.

Zajrzyjmy na przykład z życia, np. pisanie książki:

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

11.2 Tworzenie gałęzi

Tworzenie gałęzi w PyCharm jest bardzo proste.

Wpisz nazwę gałęzi.

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

Co było wcześniej?

Wcześniej wyświetlała się nazwa twojej pierwszej i głównej gałęzi — master.

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

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

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

Krok 1. Wybierz gałąź.

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

Nie ma co się pogubić — to bardzo proste:

Local — to lista gałęzi twojego lokalnego repozytorium git; tutaj są dwie:

  • test
  • master

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

Recent — to lista nazw ostatnich gałęzi, z którymi pracowałeś. Ten punkt dodano w PyCharm dla wygody i szybkości.

Nazwa origin/master po prawej stronie od nazwy lokalnego repozytorium to nazwa zdalnego repozytorium, z którym teraz jest zsynchronizowane i do którego będą wysyłane zmiany.

Krok 2. — Przeładowujemy kod gałęzi do bieżącego folderu.

Krok 3. Sprawdzamy:.

U mnie wyświetla się gałąź (master) i stary kod.

11.4 Łączenie 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 — init.py i napiszmy w nim jakiś kod.

  • Tworzymy plik init.py
  • Piszemy w nim kod print("Cześć")
  • Zatwierdzamy plik.

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

Krok 2. Łączenie gałęzi.

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

W tym celu również skorzystamy z górnego menu i polecenia «Merge ‘test’ into ‘master’».

Krok 3. Sprawdzamy wynik:.

Sprawdzamy:

  • Na górze nadal wyświetlana jest gałąź master
  • Mamy dwa pliki: init.py i main.py
  • Plik main.py zawiera kod, który został dodany w gałęzi test.

11.5 Konflikty podczas łączenia

Czasem podczas łączenia gałęzi pojawiają się konflikty.

Jeśli wprowadzisz zmiany w jednym pliku w różnych gałęziach i spróbujesz je połączyć, może pojawić się konflikt.

Konflikt plików tekstowych

Git to bardzo inteligentny system, rozpoznaje 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 we właściwe miejsce, jakby to zrobił człowiek.

Konflikt plików binarnych

Ale jeśli wprowadzisz zmiany w obrazku lub dokumencie, Git nie będzie próbował łączyć ich części w jeden plik, 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ć.

Tak może to wyglądać:

Co tu widzisz:

  • Z lewej zawartość pliku main.py z gałęzi master
  • Z prawej zawartość pliku main.py z gałęzi test
  • W środku PyCharm proponuje ci napisać finalną wersję kodu (można kliknąć przyciski «>>» i «<<», by automatycznie wkleić zmiany z jednego z plików).

Przyjąłem wersję master i dopisałem kod ręcznie. Oto co mi wyszło.

11.6 Historia zmian

Coś jeszcze przydatnego i ciekawego: możesz zobaczyć historię zmian dowolnego pliku, klikając przycisk Show History. Istnieją dwa miejsca, gdzie można ją znaleźć — znajdź je.

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

Wyjaśnienia:

  • Z lewej widzisz historię zmian konkretnego pliku:
    • Im nowsza zmiana, tym jest wyżej; im starsza — tym niżej.
    • Tu również wyświetla się historia łączenia gałęzi.
  • Z prawej — zmiany, które zostały wprowadzone w konkretnym commicie.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION