
Wymagane dane wejściowe:
- Przeczytaj, śledź dalej i zrozum mój artykuł o Git . Pomoże to upewnić się, że wszystko jest skonfigurowane i gotowe do pracy.
- Zainstaluj IntelliJ IDEA.
- Przeznacz godzinę osobistego czasu, aby osiągnąć pełne mistrzostwo.
Sklonuj projekt lokalnie
Istnieją dwie opcje:- Jeśli masz już konto na GitHubie i chcesz później coś wypchnąć, lepiej rozwidlić projekt i sklonować własną kopię.
- Sklonuj moje repozytorium i rób wszystko lokalnie bez możliwości wypychania całości na serwer. W końcu to moje repozytorium :)
-
Skopiuj adres projektu:
-
Otwórz IntelliJ IDEA i wybierz „Pobierz z kontroli wersji”:
-
Skopiuj i wklej adres projektu:
-
Zostaniesz poproszony o utworzenie projektu IntelliJ IDEA. Zaakceptuj ofertę:
-
Ponieważ nie ma systemu kompilacji i wykracza to poza zakres tego artykułu, wybieramy opcję Utwórz projekt z istniejących źródeł :
-
Następnie zobaczysz ten piękny ekran:
Teraz, 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.



Praca z repozytorium
Przydatne skróty klawiszowe
Do przyszłej pracy musisz zapamiętać kilka bardzo przydatnych skrótów klawiszowych:- CTRL+T — Pobierz najnowsze zmiany ze zdalnego repozytorium (git pull).
- 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).
- 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).
- 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.

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ć?-
Pobierz wszystkie bieżące zmiany w gałęzi głównej (na przykład „master”).
-
Z tej głównej gałęzi utwórz oddzielną gałąź dla swojej pracy.
-
Zaimplementuj nową funkcjonalność.
-
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).
- Wypchnij zmiany do zdalnego repozytorium.
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 :

Utwórz nową gałąź opartą na master
Tutaj wszystko jest proste.-
Przejdź do prawego dolnego rogu i kliknij Git: master . Wybierz + Nowa gałąź .
Pozostaw zaznaczone pole Checkout branch i wprowadź nazwę nowego oddziału. Dla mnie będzie to readme-improver .

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:


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:



- zaakceptuj swoje — zaakceptuj tylko zmiany z readme-improver.
- zaakceptuj ich — akceptuj tylko zmiany od mistrza.
- scalaj — sam wybierz, co chcesz zachować, a co odrzucić.

- To są zmiany z readme-improver.
- Scalony wynik. Na razie jest to, co było przed zmianami.
- Zmiany z gałęzi master.

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:

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:

GO TO FULL VERSION