JavaRush /Blog Java /Random-PL /Połączmy Git z Intellij IDEA
Roman Beekeeper
Poziom 35

Połączmy Git z Intellij IDEA

Opublikowano w grupie Random-PL
Tradycyjnie witam Was, przyszłych Starszych Inżynierów Oprogramowania. Połączmy Git z Intellij IDEA - 1Dziś porozmawiamy o logicznej kontynuacji mojego artykułu o Gicie . Polecam także przeczytać materiał na temat strategii rozgałęziających , który opublikowałem wcześniej. W artykule o Gicie opisałem jak pracować z nim z linii poleceń, a dziś pokażę jak to wszystko zrobić w Intellij IDEA. Na początku mojej podróży jako programista korzystałem z wiersza poleceń i myślałem, że nie ma potrzeby używać w tym celu interfejsu użytkownika. Przecież wszystko jest jasne i takie... Ale tak było dokładnie do momentu, w którym zacząłem używać Gita w Intellij IDEA... Od razu chcę powiedzieć, że opiszę moje osobiste doświadczenia. Istnieje kilka opcji rozwiązania tych samych problemów za pomocą Intellij IDEA, a jeśli wiesz, jak zrobić lepiej to, co opisuję w artykule, napisz w komentarzach, a podyskutujemy.

Niezbędne uwagi wstępne:

  1. Przeczytaj, powtórz i zrozum artykuł o git . Pomoże to upewnić się, że wszystko jest już skonfigurowane i gotowe do pracy.
  2. Zainstaluj Intellij IDEA.
  3. Poświęć godzinę czasu osobistego na całkowite wchłonięcie.
Do pracy weźmy projekt demonstracyjny , którego użyłem w artykule o Gicie. AKTUALIZACJA:W momencie publikacji nowy interfejs Github będzie już dostępny, a niektórych ikon nie będzie tam, gdzie jest to pokazane w artykule. Nie martw się: po prostu musisz albo nie przełączać się na nowy interfejs, albo go poszukać.

Sklonuj projekt lokalnie

Istnieją dwie opcje tutaj.
  1. Jeśli masz już konto na Githubie i chcesz przesłać coś później, lepiej udostępnić projekt sobie i sklonować swoją kopię. Jak zrobić fork - opisałem w tym artykule w rozdziale przykładowy schemat działania forka .
  2. Sklonuj z mojego repozytorium i rób wszystko lokalnie, bez możliwości wypchnięcia całości na serwer. W końcu to będzie moje repozytorium))
Aby sklonować projekt z Githuba, musisz skopiować link do projektu i przekazać go do IntelliJ IDEA:
  1. Skopiuj adres projektu:

    Połączmy Git z Intellij IDEA - 2
  2. Otwórz Intellij IDEA i wybierz Pobierz z kontroli wersji:

    Połączmy Git z Intellij IDEA - 3
  3. Skopiuj i wklej adres do projektu:

    Połączmy Git z Intellij IDEA - 4
  4. Zostaniesz poproszony o utworzenie projektu Intellij IDEA. Akceptujemy ofertę:

    Połączmy Git z Intellij IDEA - 5
  5. Ponieważ nie ma systemu kompilacji i nie jest to tematem artykułu, wybierz opcję Utwórz projekt z istniejących źródeł :

    Połączmy Git z Intellij IDEA - 6
  6. Następny będzie obraz olejny taki jak ten: Połączmy Git z Intellij IDEA - 7Załatwiliśmy klonowanie, teraz możemy się rozejrzeć.

Najpierw spójrz na Intellij IDEA jako interfejs Git

Przyjrzyj się jeszcze raz sklonowanemu projektowi: już tam możesz uzyskać wiele informacji na temat systemu kontroli wersji. Pierwszy to panel Kontroli wersji w lewym dolnym rogu. Można w nim znaleźć wszystkie lokalne zmiany i uzyskać listę zatwierdzeń (analogicznie do git log). Przejdźmy do wykładu Log . Istnieje pewien element wizualny, który pomaga dokładnie zrozumieć, jak przebiegał proces tworzenia. Na przykład możesz zobaczyć, że utworzono nową gałąź z dodanym nagłówkiem zatwierdzenia do txt , który następnie został scalony z gałęzią główną. Jeśli klikniesz na zatwierdzenie, w prawym rogu zobaczysz wszystkie informacje na temat zatwierdzenia: wszystkie zmiany i ich metadane. Подружим Git с Intellij IDEA - 8Co więcej, możesz zobaczyć, jakie zmiany zostały wprowadzone. Co więcej, konflikt został tam rozwiązany. IDEA również doskonale to pokazuje. Jeśli dwukrotnie klikniesz plik, który został zmieniony podczas tego zatwierdzenia, zobaczymy, jak konflikt został rozwiązany: Подружим Git с Intellij IDEA - 9Można zauważyć, że po prawej i lewej stronie znajdowały się dwie wersje tego samego pliku, które należało połączyć w jedną. A w środku efekt końcowy. Kiedy projekt ma wiele gałęzi, zatwierdzeń i użytkowników pracujących w projekcie, musisz wyszukiwać osobno według gałęzi (oddziału), użytkownika (użytkownika) i daty (data): Подружим Git с Intellij IDEA - 10Ostatnią rzeczą, którą chcę wyjaśnić przed rozpoczęciem, jest to, jak zrozumieć w jakim oddziale jesteśmy. Dam ci chwilę na przeszukanie. Znalazłeś? Poddajesz się? :D W prawym dolnym rogu znajduje się przycisk Git: master , gdzie po Git: pokazuje, na której gałęzi aktualnie znajduje się projekt. Jeśli klikniesz przycisk, możesz zrobić wiele przydatnych rzeczy: przenieść się do innego oddziału, utworzyć nowy, zmienić nazwę istniejącego i tak dalej. Подружим Git с Intellij IDEA - 11

Praca z repozytorium

Przydatne skróty klawiszowe

Aby kontynuować pracę, musisz zapamiętać kilka bardzo przydatnych skrótów klawiszowych:
  1. ctrl + t – pobierz najnowsze zmiany ze zdalnego repozytorium (git pull).
  2. ctrl + k – zatwierdź/wyświetl wszystkie aktualnie dostępne zmiany. Dotyczy to zarówno plików nieśledzonych, jak i zmodyfikowanych (zobacz mój artykuł o git, tam jest to opisane) (git commit).
  3. ctrl + shift + k to polecenie wypychania zmian do zdalnego repozytorium. Wszystkie zatwierdzenia, które zostały utworzone lokalnie i nie znajdują się jeszcze na zdalnym, będą oferowane do wypychania (git Push).
  4. alt + ctrl + z – cofa zmiany w konkretnym pliku do stanu ostatniego utworzonego zatwierdzenia w lokalnym repozytorium. Jeśli wybierzesz cały projekt w lewym górnym rogu, możesz cofnąć zmiany we wszystkich plikach.
Подружим Git с Intellij IDEA - 12

Czego chcemy?

Aby pracować, musimy opanować podstawowy skrypt, który jest używany wszędzie. Zadanie polega na zaimplementowaniu nowej funkcjonalności w osobnej gałęzi i wypchnięciu jej do zdalnego repozytorium (wtedy trzeba utworzyć kolejne pull request dla głównej gałęzi, ale to wykracza poza zakres naszego artykułu). Co muszę zrobić?
  1. Pobierz wszystkie zmiany znajdujące się aktualnie w gałęzi głównej (na przykład master).

  2. Na podstawie tego głównego utwórz osobny dla swojej pracy.

  3. Wdrażaj nową funkcjonalność.

  4. Przejdź do głównego oddziału i sprawdź, czy podczas pracy nie zaszły jakieś nowe zmiany. Jeśli tak nie było, wszystko jest w porządku, a jeśli tak, wykonujemy następujące czynności: przechodzimy do działającej gałęzi i przenosimy zmiany z głównej gałęzi do naszej. Jeśli wszystko poszło dobrze, to świetnie. Ale mogą pojawić się konflikty. Można je rozwiązać z wyprzedzeniem, bez marnowania czasu na zdalnym repozytorium.

    Wydawałoby się, po co to robić? Jest to zasada dobrej formy, która zapobiega powstawaniu konfliktów po wypchnięciu oddziału do lokalnego repozytorium (istnieje oczywiście szansa, że ​​nadal będą istnieć, ale staje się ona znacznie mniejsza).

  5. Wypchnij zmiany do zdalnego repozytorium.
To, co stanie się dalej, zależy od Twoich celów i wyobraźni.

Odbierać zmiany ze zdalnego serwera?

Dodałem opis do pliku README z nowym zatwierdzeniem i chcę otrzymać te zmiany. Dostępny jest wybór pomiędzy łączeniem i zmianą bazy, jeśli zmiany zostały wprowadzone zarówno w repozytoriach lokalnych, jak i zdalnych. Wybierz połączenie. Enter ctrl + t : Подружим Git с Intellij IDEA - 13W rezultacie możesz zobaczyć, jak zmienił się plik README, tj. pobrano zmiany ze zdalnego repozytorium, a w prawym dolnym rogu widać wszystkie szczegóły zmian, które przyszły z serwera. Подружим Git с Intellij IDEA - 14

Utwórz nową gałąź w oparciu o master

Tutaj wszystko jest proste.
  1. Przejdź do prawego dolnego rogu i kliknij Git: master , wybierz + New Branch .

    Подружим Git с Intellij IDEA - 15
  2. Pozostaw pole wyboru Oddział do kasy i wpisz nazwę nowego oddziału. Dla mnie byłoby to readme-improver .

    Подружим Git с Intellij IDEA - 16

    Następnie Git: master zmieni się na Git: readme-improver .

Symulacja pracy równoległej

Aby pojawiły się konflikty, ktoś musi je stworzyć :D Zmodyfikuję plik README z nowym zatwierdzeniem przez przeglądarkę i w ten sposób zasymuluję pracę równoległą. Mówią, że ktoś podczas mojej pracy dokonał zmian w tym samym pliku co ja, co doprowadzi do konfliktu. Usunę słowo „całkowicie” z wiersza 10.

Zaimplementuj swoją funkcjonalność

Zadanie polega na zmianie pliku README i dodaniu opisu do nowego artykułu, czyli praca w gicie odbywa się poprzez Intellij IDEA. Dodaj to: Подружим Git с Intellij IDEA - 17Zmiany zostały zakończone, teraz możesz utworzyć zatwierdzenie. Naciśnij klawisz skrótu ctrl + k , otrzymamy: Подружим Git с Intellij IDEA - 18Przed utworzeniem zatwierdzenia musisz dokładnie przyjrzeć się temu, co jest oferowane w tym oknie. Specjalnie dodałem strzałkę, aby pokazać, gdzie szukać. Jest tam wiele ciekawych rzeczy. W sekcji Commit Message wpisujemy treść commita, a aby został on utworzony należy kliknąć przycisk Commit . Nadal nie znalazłem jak to zrobić za pomocą skrótu klawiszowego, więc jeśli ktoś znajdzie to napisz, będzie mi bardzo miło. Piszemy, że plik README się zmienił i tworzymy zatwierdzenie. W rezultacie w lewym dolnym rogu pojawi się alert z nazwą zatwierdzenia: Подружим Git с Intellij IDEA - 19

Sprawdź, czy gałąź główna uległa zmianie

Zadanie wykonaliśmy, działa, napisaliśmy testy, wszystko jest w porządku. Ale przed wypchnięciem na serwer musisz sprawdzić, czy w tym czasie zaszły jakieś zmiany w głównej gałęzi. Jak to mogło się stać? To bardzo proste: ktoś po Tobie dostał zadanie i ten ktoś wykonał je szybciej od Ciebie. Dlatego przechodzimy do gałęzi master. Aby to zrobić, musisz zrobić w prawym dolnym rogu, jak pokazano na poniższym rysunku: Подружим Git с Intellij IDEA - 20W gałęzi master naciśnij ctrl + t , aby pobrać najnowsze zmiany ze zdalnego serwera. Jeśli spojrzysz na to, jakie zmiany zostały wprowadzone, łatwo zauważysz, co się stało: Подружим Git с Intellij IDEA - 21jak widzisz, słowo „całkowicie” zostało usunięte. Być może to ktoś z działu marketingu uznał, że tak nie da się tego napisać i dał twórcom zadanie jego aktualizacji. Mamy teraz lokalnie najnowszą wersję gałęzi master. Wróćmy do Readme-Improver . Teraz musimy przenieść zmiany z gałęzi głównej na naszą. Robimy: Подружим Git с Intellij IDEA - 22Jeśli wszystko wykonałeś poprawnie, wynikiem powinien być konflikt w pliku README: Подружим Git с Intellij IDEA - 23Jest tu również wiele informacji, które należy zrozumieć i przyswoić. To pokazuje listę (w naszym przypadku jednego elementu) plików, które powodują konflikty. Możemy wybrać trzy opcje:
  1. zaakceptuj swoje - akceptuj tylko zmiany z pliku Readme-Improver.
  2. zaakceptuj ich - akceptuj tylko zmiany od mistrza.
  3. scalaj - sam zdecyduj, co zachować, a co usunąć.
Nie jest jasne, co się tam zmieniło, a jeśli zmiany są w masterze, to są tam potrzebne i nie możemy po prostu zaakceptować naszych zmian, więc wybieramy scalanie : Подружим Git с Intellij IDEA - 24Tutaj widać, że są trzy części:
  1. Są to zmiany wprowadzone w programie Readme-Improver.
  2. Wynik. Na razie jest tak jak było przed zmianami.
  3. Zmiany z gałęzi master.
Musimy zebrać wynik w taki sposób, aby był satysfakcjonujący dla wszystkich. Dlatego sprawdziliśmy, co zrobili PRZED nami i zdaliśmy sobie sprawę, że po prostu usunęli słowo „całkowicie”. No dobrze, nie ma problemu. Oznacza to, że w rezultacie go usuniemy i dodamy nasze zmiany. Gdy tylko poprawimy wynik, możesz kliknąć Zastosuj . Następnie pojawi się powiadomienie, że rebase się powiodła: Подружим Git с Intellij IDEA - 25W ten sposób 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ć wystarczy wcisnąć ctrl+shift+k , po czym otrzymamy: Подружим Git с Intellij IDEA - 26Po lewej stronie pojawi się lista zatwierdzeń, które nie zostały wypchnięte do zdalnego repozytorium, a po prawej wszystkie pliki, które zostały zmieniony. To wszystko: kliknij Push , a będziesz zadowolony :) Jeśli push się powiedzie, w prawym dolnym rogu pojawi się takie powiadomienie: Подружим Git с Intellij IDEA - 27

Część bonusowa

Początkowo nie chciałem dodawać do artykułu tworzenia żądania ściągnięcia, ale z tego powodu okazało się, że nie jest ono zbyt kompletne. Wchodzimy zatem do repozytorium GitHub (oczywiście jeśli jest Twoje))))) i widzimy, że GitHub już wie, co nam zaoferować: Подружим Git с Intellij IDEA - 28Kliknij na Porównaj i ściągnij żądanie , a następnie kliknij Utwórz żądanie ściągnięcia . Dzięki temu, że konflikty rozwiązaliśmy wcześniej, teraz tworząc pull request, możesz od razu go scalić: Подружим Git с Intellij IDEA - 29To wszystko, co chciałem Ci tym razem powiedzieć. Oczywiście właśnie otworzyłem drzwi i pokazałem wam małą część. Resztę znajdziesz sam, jeśli zajdzie taka potrzeba. Tradycyjnie zapraszam do subskrypcji mojego konta na GitHubie , gdzie publikuję projekty oparte na różnych technologiach, które wykorzystuję w pracy. Niedawno odniosłem osobiste osiągnięcie - mój projekt został już oceniony przez ponad stu programistów. To niesamowite uczucie radości, że ktoś wykorzystuje to, co stworzyłeś. I wykorzystuje to w dobrym celu.

Przydatne linki

  1. JavaRush: Pierwsze kroki z Git: szczegółowy przewodnik dla początkujących
  2. GitHub: projekt demonstracyjny do pracy
  3. JavaRush: Analiza strategii rozgałęzień w Git
  4. JetBrains: Skonfiguruj repozytorium Git
  5. Habr: Rebaza Gita
  6. GitHub: Moje konto
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION