„Dzisiaj opowiem o dwóch najpopularniejszych programach do kontroli wersji: SVN i Git”.

„SVN działa mniej więcej tak, jak opisałem w poprzedniej lekcji. Git jest trochę bardziej skomplikowany i planuję omówić go bardziej szczegółowo”.

„Czy możesz podać mi linki do dokumentacji SVN i Git?”

– Oczywiście, chwileczkę.

http://svnbook.red-bean.com/en/1.7/svn-book.html

https://githowto.com  (to po prostu arcydzieło)

— Więc, Git .

„To trochę bardziej skomplikowane niż SVN.  Dzięki Git każdy użytkownik ma swoje własne lokalne repozytorium oprócz repozytorium serwera ” .

– Więc gdzie się wybierasz?

„Użytkownicy zawsze zobowiązują się do swojego lokalnego repozytorium”.

„Ale co z repozytorium serwera?”

„Aby zsynchronizować repozytoria lokalne i serwerowe, istnieją specjalne polecenia Pull i Push .

„Jest ku temu powód. Czasami programista musi wykonać dużo pracy ze swojej strony, co może wiązać się z kilkoma setkami zatwierdzeń, zanim będzie można go dodać do współdzielonego repozytorium”.

„Aby to zrobić w SVN, musiałbyś założyć oddzielną gałąź, a następnie połączyć ją z trunkiem”.

„Dzięki Git po prostu zawsze zatwierdzasz lokalne repozytorium, a następnie wysyłasz wszystkie zmiany jako partię do centralnego repozytorium na serwerze, kiedy skończysz”.

„Ta metoda może wydawać się nieco przesadzona, gdy piszesz tylko mały kod. Ale kiedy twoje zadania są tak duże, że rozciągają się na tygodnie, wtedy rozumiesz, że nie możesz po prostu napisać całego czasu bez zaangażowania”.

„Dlaczego nie możesz po prostu pracować przez dwa tygodnie, a potem raz zatwierdzić zmiany na serwerze?”

„Cóż, program kontroli wersji oferuje wiele udogodnień”.

„Wyobraź sobie, że popełniasz każdego dnia, a 10 dnia odkrywasz, że zmiany, które wprowadziłeś w ciągu ostatnich dwóch dni, nie zadziałają zgodnie z planem. I chcesz wrócić do kodu, który miałeś 8 dnia i podejść do zadania różnie."

„Po prostu wycofujesz zmiany wprowadzone w lokalnym repozytorium w ciągu ostatnich dwóch dni i powracasz do pożądanego stanu. Nazywa się to operacją wycofania ”.

– Chcesz mi powiedzieć, że możesz to zrobić?

„Tak. Ponadto, ponieważ historia zatwierdzeń jest przechowywana, można dowiedzieć się, kiedy i dlaczego coś zostało zatwierdzone, przez kogo, istotne funkcje/błędy oraz które dziesięć plików zostało jednocześnie zmodyfikowanych w ramach tej pracy”.

„Załóżmy, że naprawa czyjegoś błędu psuje kod innej osoby. Możesz po prostu wycofać ( przywrócić ) kod i postępować tak, jakby zmiana nigdy się nie wydarzyła”.

„OK, super. Jestem przekonany. Czy mógłbyś pokazać mi kilka przykładów ilustrujących, jak to wszystko działa?”

"Jasne."

„Oto jak sklonować centralne repozytorium na komputerze lokalnym:”

Zatwierdzenia i gałęzie - 1

„Tak więc operacja Checkout nie jest już potrzebna”.

„Tak. A oto przykłady operacji Push :”

Zatwierdzenia i rozgałęzienia - 2

„Operacje i ściąganie :

Zatwierdzenia i rozgałęzienia - 3

– Ach. To mniej więcej ma sens.

„Nawiasem mówiąc, istnieje fajna usługa o nazwie GitHub”.

„Każdy programista może się tam zarejestrować i tworzyć własne repozytoria Git. Sugeruję zapoznanie się z nim”.

„Oto kilka przydatnych linków:”

https://githowto.com

https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

https://articles.assembla.com/using-git/getting-started/set-up-git-on-windows-with-tortoisegit

„Zauważ, że jest całkiem sporo klientów Git”.

„Po pierwsze, jest   GitBash , który pozwala wprowadzać polecenia tekstowe”.

„Potem jest TortoiseGit , który jest dobrym programem wbudowanym w Eksplorator Windows. Pozwala pracować z plikami w repozytorium Git bezpośrednio w Eksploratorze”.

„IntelliJ IDEA obsługuje Git i umożliwia wykonywanie różnego rodzaju złożonych poleceń za pomocą zaledwie kilku kliknięć bezpośrednio w środowisku”.

„Więc którego powinienem się nauczyć?”

„Polecam poznać je wszystkie”.

„Przejdziesz rozmowę kwalifikacyjną i dotrzesz do pracy. Dostaniesz link do Git, login i hasło — i to wszystko. Wtedy będziesz zdany na siebie”.

– Co masz na myśli, mówiąc „na własną rękę”?

„Mam na myśli to, że sam skonfigurujesz Gita, sam ściągniesz kopię repozytorium…”

„A potem będziesz musiał zbudować i spróbować uruchomić projekt”.

„Instrukcje kompilacji najprawdopodobniej będą również znajdować się w repozytorium Git wraz z dokumentacją projektu”.

„Twój lider zespołu przyjdzie do ciebie wieczorem i powie:  «Cóż, co do tej pory odkryłeś?» "

„A ty powiesz: „Próbuję założyć tutaj Gita, ale jeszcze mi się nie udało. «Nie zwolnisz mnie, prawda?» "

„Lub, gdy jest jeszcze południe, możesz pójść do kierownika zespołu i powiedzieć:  «Zainstalowałem Gita, uruchomiłem projekt i przejrzałem dokumentację, ale są setki plików i jeszcze wszystkiego nie uporządkowałem. Gdzie czy aktualne instrukcje kompilacji?'» "

„Czy czujesz różnicę?”

„Tak. W drugim przypadku jestem programistą super-gwiazdą rocka, ale w pierwszym jestem jakimś robo-doofusem, który nawet nie wie, jak wyciągnąć projekt z Gita. Innymi słowy, spieprzyłem zanim jeszcze zacząłem programować. Przypuszczam, że po tym nie pozwoliliby mi nawet pisać kodu.

„Widzisz, sam sobie odpowiedziałeś na pytania. Więc ucz się i wymyśl. Nikt nie zrobi tego za ciebie”.

– Nie zamierzasz mi pomóc?

„Już pomagałem. Uczymy tu Javy, gdybyś zapomniał. We wszystkim innym jesteś zdany na siebie. A może twoja głowa jest tylko do picia?”

„Dobra, rozumiem. Dziękuję, Bilaabo!”