CodeGym /Blog Java /Random-PL /Niebiańskie dopasowanie: Git i IntelliJ IDEA
John Squirrels
Poziom 41
San Francisco

Niebiańskie dopasowanie: Git i IntelliJ IDEA

Opublikowano w grupie Random-PL
Trzymając się ustalonej tradycji, pozdrawiam Was jako przyszłych starszych inżynierów oprogramowania. Niebiańskie dopasowanie: Git i IntelliJ IDEA - 1Dzisiejszy artykuł jest logicznym rozwinięciem mojego artykułu o Git . W artykule o Gicie opisałem jak pracować z Gitem w wierszu poleceń. Dzisiaj pokażę Ci jak to wszystko zrobić w IntelliJ IDEA. Na początku mojej drogi programistycznej korzystałem z wiersza poleceń i myślałem, że nie potrzebuję do tego GUI. W końcu wszystko było jasne jak było... Ale tak było do momentu, kiedy zacząłem używać Gita w IntelliJ IDEA... Od samego początku chcę powiedzieć, że opisuję moje osobiste doświadczenie. Istnieje kilka sposobów rozwiązania dowolnego problemu w IntelliJ IDEA. Jeśli znasz lepszy sposób niż ten, który opiszę w artykule, napisz go w komentarzach, a my to przedyskutujemy.

Wymagane dane wejściowe:

  1. Przeczytaj, śledź dalej i zrozum mój artykuł o Git . Pomoże to upewnić się, że wszystko jest skonfigurowane i gotowe do pracy.
  2. Zainstaluj IntelliJ IDEA.
  3. Przeznacz godzinę osobistego czasu, aby osiągnąć pełne mistrzostwo.
Pracujmy z projektem demonstracyjnym , którego użyłem w artykule o Git. AKTUALIZACJA:W momencie publikacji nowy interfejs GitHub będzie dostępny, a niektóre ikony nie będą widoczne w artykule. Nie przejmuj się: po prostu musisz albo nie przełączać się na nowy interfejs użytkownika, albo ich szukać.

Sklonuj projekt lokalnie

Istnieją dwie opcje:
  1. Jeśli masz już konto na GitHubie i chcesz później coś wypchnąć, lepiej rozwidlić projekt i sklonować własną kopię.
  2. Sklonuj moje repozytorium i rób wszystko lokalnie bez możliwości wypychania całości na serwer. W końcu to moje repozytorium :)
Aby sklonować projekt z GitHub, musisz skopiować link do projektu i przekazać go do IntelliJ IDEA:
  1. Skopiuj adres projektu:

    Niebiańskie dopasowanie: Git i IntelliJ IDEA - 2
  2. Otwórz IntelliJ IDEA i wybierz „Pobierz z kontroli wersji”:

    Niebiańskie dopasowanie: Git i IntelliJ IDEA - 3
  3. Skopiuj i wklej adres projektu:

    Niebiańskie dopasowanie: Git i IntelliJ IDEA - 4
  4. Zostaniesz poproszony o utworzenie projektu IntelliJ IDEA. Zaakceptuj ofertę:

    Niebiańskie dopasowanie: Git i IntelliJ IDEA - 5
  5. Ponieważ nie ma systemu kompilacji i wykracza to poza zakres tego artykułu, wybieramy opcję Utwórz projekt z istniejących źródeł :

    Niebiańskie dopasowanie: Git i IntelliJ IDEA - 6
  6. Następnie zobaczysz ten piękny ekran: Niebiańskie dopasowanie: Git i IntelliJ IDEA - 7Teraz, kiedy odkryliśmy klonowanie, możesz się rozejrzeć.

Pierwsze spojrzenie na IntelliJ IDEA jako Git UI

Przyjrzyj się bliżej sklonowanemu projektowi: możesz już uzyskać wiele informacji na temat systemu kontroli wersji. Po pierwsze, mamy panel kontroli wersji w lewym dolnym rogu. Tutaj możesz znaleźć wszystkie lokalne zmiany i uzyskać listę zatwierdzeń (analogicznie do „git log”). Przejdźmy do omówienia Log . Istnieje pewna wizualizacja, która pomaga nam dokładnie zrozumieć, jak przebiegał rozwój. Na przykład możesz zobaczyć, że utworzono nową gałąź z dodanym nagłówkiem do zatwierdzenia txt, która została następnie włączona do gałęzi głównej. Jeśli klikniesz na zatwierdzenie, w prawym rogu zobaczysz wszystkie informacje o zatwierdzeniu: wszystkie jego zmiany i metadane.Niebiańskie dopasowanie: Git i IntelliJ IDEA - 8Co więcej, możesz zobaczyć rzeczywiste zmiany. Widzimy też, że konflikt został tam rozwiązany. IDEA również to bardzo dobrze prezentuje. Jeśli klikniesz dwukrotnie plik, który został zmieniony podczas tego zatwierdzenia, zobaczymy, jak konflikt został rozwiązany: Zauważmy, Niebiańskie dopasowanie: Git i IntelliJ IDEA - 9że po lewej i prawej stronie mamy dwie wersje tego samego pliku, które trzeba było połączyć w jedną. A w środku mamy końcowy wynik połączenia. Gdy projekt ma wiele gałęzi, zatwierdzeń i użytkowników, musisz wyszukiwać oddzielnie według gałęzi, użytkownika i daty: Niebiańskie dopasowanie: Git i IntelliJ IDEA - 10Ostatnią rzeczą, którą chcę wyjaśnić przed rozpoczęciem, jest to, jak zrozumieć, w której gałęzi się znajdujemy. minuta, żeby to rozgryźć... Znalazłeś? Poddać się? :D W prawym dolnym rogu znajduje się przycisk oznaczony Git: master. Cokolwiek następuje po „Git:”, jest bieżącą gałęzią. Jeśli klikniesz przycisk, możesz zrobić wiele przydatnych rzeczy: przełączyć się do innej gałęzi, utworzyć nową, zmienić nazwę istniejącej i tak dalej.Niebiańskie dopasowanie: Git i IntelliJ IDEA - 11

Praca z repozytorium

Przydatne skróty klawiszowe

Do przyszłej pracy musisz zapamiętać kilka bardzo przydatnych skrótów klawiszowych:
  1. CTRL+T — Pobierz najnowsze zmiany ze zdalnego repozytorium (git pull).
  2. CTRL+K — Utwórz zatwierdzenie / zobacz wszystkie bieżące zmiany. Obejmuje to zarówno pliki nieśledzone, jak i zmodyfikowane (zobacz mój artykuł o git, który to wyjaśnia) (git commit).
  3. CTRL+SHIFT+K — To jest polecenie do wypychania zmian do zdalnego repozytorium. Wszystkie rewizje utworzone lokalnie i jeszcze nie w zdalnym repozytorium zostaną wypchnięte (git push).
  4. ALT+CTRL+Z — Wycofaj zmiany w określonym pliku do stanu ostatniego zatwierdzenia utworzonego w lokalnym repozytorium. Jeśli wybierzesz cały projekt w lewym górnym rogu, możesz cofnąć zmiany we wszystkich plikach.
Niebiańskie dopasowanie: Git i IntelliJ IDEA - 12

Czego chcemy?

Aby wykonać pracę, musimy opanować podstawowy scenariusz, który jest używany wszędzie. Celem jest zaimplementowanie nowej funkcjonalności w oddzielnej gałęzi, a następnie wypchnięcie jej do zdalnego repozytorium (wtedy trzeba również utworzyć żądanie ściągnięcia do głównej gałęzi, ale to wykracza poza zakres tego artykułu). Co jest wymagane, aby to zrobić?
  1. Pobierz wszystkie bieżące zmiany w gałęzi głównej (na przykład „master”).

  2. Z tej głównej gałęzi utwórz oddzielną gałąź dla swojej pracy.

  3. Zaimplementuj nową funkcjonalność.

  4. Przejdź do gałęzi głównej i sprawdź, czy w trakcie naszej pracy nie pojawiły się jakieś nowe zmiany. Jeśli nie, to wszystko jest w porządku. Ale jeśli nastąpiły zmiany, wykonujemy następujące czynności: przechodzimy do działającej gałęzi i przestawiamy zmiany z głównej gałęzi na naszą. Jeśli wszystko pójdzie dobrze, to świetnie. Ale jest całkiem możliwe, że będą konflikty. Tak się składa, że ​​można je rozwiązać z wyprzedzeniem, bez marnowania czasu w zdalnym repozytorium.

    Zastanawiasz się, dlaczego warto to zrobić? To dobre obyczaje i zapobiega powstawaniu konfliktów po wypchnięciu gałęzi do lokalnego repozytorium (istnieje oczywiście możliwość, że konflikty będą nadal występowały, ale będą znacznie mniejsze).

  5. Wypchnij zmiany do zdalnego repozytorium.
To, co będzie dalej, zależy od twoich zadań i twojej wyobraźni.

Pobrać zmiany ze zdalnego serwera?

Dodałem opis do README z nowym zatwierdzeniem i chcę uzyskać te zmiany. Jeśli zmiany zostały wprowadzone zarówno w repozytorium lokalnym, jak i zdalnym, to jesteśmy zaproszeni do wyboru między scaleniem a rebase. Wybieramy połączenie. Enter CTRL+T : Niebiańskie dopasowanie: Git i IntelliJ IDEA - 13Możesz teraz zobaczyć, jak zmienił się README, tj. zmiany ze zdalnego repozytorium zostały pobrane, aw prawym dolnym rogu możesz zobaczyć wszystkie szczegóły zmian, które nadeszły z serwera.Niebiańskie dopasowanie: Git i IntelliJ IDEA - 14

Utwórz nową gałąź opartą na master

Tutaj wszystko jest proste.
  1. Przejdź do prawego dolnego rogu i kliknij Git: master . Wybierz + Nowa gałąź .

    Niebiańskie dopasowanie: Git i IntelliJ IDEA - 15
  2. Pozostaw zaznaczone pole Checkout branch i wprowadź nazwę nowego oddziału. Dla mnie będzie to readme-improver .

    Niebiańskie dopasowanie: Git i IntelliJ IDEA - 16

    Git: master zmieni się wtedy na Git: readme-improver .

Symulujmy pracę równoległą

Aby pojawiły się konflikty, ktoś musi je stworzyć :D Zmodyfikuję plik README z nowym zatwierdzeniem przez przeglądarkę, symulując w ten sposób pracę równoległą. To tak, jakby ktoś dokonał zmian w tym samym pliku, kiedy nad nim pracowałem. Rezultatem będzie konflikt. Usunę słowo „w pełni” z linii 10.

Zaimplementuj naszą funkcjonalność

Naszym zadaniem jest zmiana README i dodanie opisu do nowego artykułu. Oznacza to, że praca w Git przechodzi przez IntelliJ IDEA. Dodaj to: Niebiańskie dopasowanie: Git i IntelliJ IDEA - 17Zmiany zostały zakończone. Teraz możemy utworzyć zatwierdzenie. Naciśnij CTRL+K , co daje nam: Niebiańskie dopasowanie: Git i IntelliJ IDEA - 18Przed utworzeniem zatwierdzenia musimy dokładnie przyjrzeć się temu, co oferuje to okno. Dodałem czerwone strzałki, aby pokazać, gdzie szukać. Jest tu wiele ciekawych rzeczy. W sekcji Commit Message piszemy tekst związany z commitem. Następnie, aby go utworzyć, musimy kliknąć Zatwierdź. Nadal nie dowiedziałem się, jak to zrobić za pomocą skrótu klawiszowego. Jeśli ktoś się dowie, jak to zrobić, proszę, napisz do mnie — bardzo by mnie to ucieszyło. Piszemy, że zmienił się plik README i tworzymy zatwierdzenie. W lewym dolnym rogu pojawi się alert z nazwą zatwierdzenia:Niebiańskie dopasowanie: Git i IntelliJ IDEA - 19

Sprawdź, czy zmieniła się główna gałąź

Wykonaliśmy nasze zadanie. To działa. Napisaliśmy testy. Wszystko w porządku. Ale przed pushem na serwer musimy jeszcze sprawdzić, czy w międzyczasie nie zaszły jakieś zmiany w gałęzi głównej. Jak to się mogło stać? Dość łatwo: ktoś otrzymuje zadanie po tobie i ten ktoś kończy je szybciej niż ty kończysz swoje zadanie. Musimy więc przejść do gałęzi głównej. Aby to zrobić, musimy zrobić to, co pokazano w prawym dolnym rogu na poniższym zrzucie ekranu: Niebiańskie dopasowanie: Git i IntelliJ IDEA - 20W gałęzi głównej naciśnij CTRL + T , aby pobrać najnowsze zmiany ze zdalnego serwera. Patrząc na to, co się zmieniło, możesz łatwo zobaczyć, co się stało:Niebiańskie dopasowanie: Git i IntelliJ IDEA - 21Usunięto słowo „w pełni”. Może ktoś z marketingu uznał, że nie powinno się tak pisać i dał programistom zadanie aktualizacji. Mamy teraz lokalną kopię najnowszej wersji gałęzi głównej. Wróć do programu Readme-improver . Teraz musimy zmienić bazę zmian z gałęzi master na naszą. Robimy tak: Niebiańskie dopasowanie: Git i IntelliJ IDEA - 22Jeśli zrobiłeś wszystko poprawnie i postępowałeś zgodnie ze mną, wynik powinien pokazać konflikt w pliku README: Niebiańskie dopasowanie: Git i IntelliJ IDEA - 23Tutaj również mamy wiele informacji do zrozumienia i przyswojenia. Tutaj pokazana jest lista plików (w naszym przypadku jeden plik), które powodują konflikty. Do wyboru mamy trzy opcje:
  1. zaakceptuj swoje — zaakceptuj tylko zmiany z readme-improver.
  2. zaakceptuj ich — akceptuj tylko zmiany od mistrza.
  3. scalaj — sam wybierz, co chcesz zachować, a co odrzucić.
Nie jest jasne, co się zmieniło. Jeśli są zmiany w gałęzi nadrzędnej, muszą być tam potrzebne, więc nie możemy po prostu zaakceptować naszych zmian. W związku z tym wybieramy scalanie : Niebiańskie dopasowanie: Git i IntelliJ IDEA - 24Tutaj widzimy, że istnieją trzy części:
  1. To są zmiany z readme-improver.
  2. Scalony wynik. Na razie jest to, co było przed zmianami.
  3. Zmiany z gałęzi master.
Musimy stworzyć połączony wynik, który zadowoli wszystkich. Przeglądając to, co zostało zmienione PRZED naszymi zmianami, zdajemy sobie sprawę, że po prostu usunęli słowo „w pełni”. Dobra, nie ma problemu! Oznacza to, że usuniemy go również w scalonym wyniku, a następnie dodamy nasze zmiany. Po poprawieniu scalonego wyniku możemy kliknąć Zastosuj . Następnie pojawi się powiadomienie, informujące nas, że rebase powiodło się: Niebiańskie dopasowanie: Git i IntelliJ IDEA - 25Proszę! Rozwiązaliśmy nasz pierwszy konflikt za pomocą IntelliJ IDEA :D

Wypchnij zmiany na zdalny serwer

Następnym krokiem jest wypchnięcie zmian na zdalny serwer i utworzenie żądania ściągnięcia. Aby to zrobić, po prostu naciśnij CTRL+SHIFT+K . Następnie otrzymamy: Niebiańskie dopasowanie: Git i IntelliJ IDEA - 26Po lewej stronie pojawi się lista zatwierdzeń, które nie zostały wypchnięte do zdalnego repozytorium. Po prawej stronie będą wszystkie pliki, które zostały zmienione. I to wszystko! Naciśnij Push , a doświadczysz szczęścia :) Jeśli push się powiedzie, zobaczysz takie powiadomienie w prawym dolnym rogu:Niebiańskie dopasowanie: Git i IntelliJ IDEA - 27

Część bonusowa

Na początku nie chciałem dodawać tworzenia żądania ściągnięcia do tego artykułu, ale bez tego nie jest to całkiem kompletne. Przejdźmy więc do repozytorium GitHub (takie, które jest oczywiście twoje :)) i widzimy, że GitHub już wie, czego chcemy: Niebiańskie dopasowanie: Git i IntelliJ IDEA - 28Kliknij Porównaj i pobierz żądanie . Następnie kliknij Utwórz żądanie ściągnięcia . Ponieważ wcześniej rozwiązaliśmy konflikty, teraz podczas tworzenia żądania ściągnięcia możemy je natychmiast scalić: Niebiańskie dopasowanie: Git i IntelliJ IDEA - 29I to wszystko, co chciałem tym razem powiedzieć. Oczywiście tylko trochę otworzyłem drzwi i pokazałem ci małą część. Reszty dowiesz się w miarę potrzeb. Mam zwyczaj zapraszać Cię do obserwowania mnie na GitHub, gdzie zamieszczam swoje projekty z wykorzystaniem różnych technologii, których używam w pracy. Niedawno dokonałem osobistego osiągnięcia: jeden z moich projektów otrzymał gwiazdki od ponad stu programistów. Jest niesamowite uczucie radości, gdy wiesz, że to, co zrobiłeś, jest wykorzystywane przez kogoś innego. I używać go w dobrym celu.

Przydatne linki

  1. CodeGym: Pierwsze kroki z Git: obszerny przewodnik dla początkujących
  2. GitHub: Projekt demonstracyjny do ćwiczeń
  3. JetBrains: Skonfiguruj repozytorium Git
  4. GitHub: Moje konto
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION