Git definiuje procesy kontroli wersji dotyczące sposobu udostępniania projektów. Istnieje wiele witryn, które umożliwiają hostowanie projektów Git. GitHub to najpopularniejsza opcja, Bitbucket to kolejna popularna alternatywa, obie umożliwiają bezpłatne konta, które mogą tworzyć nieograniczoną liczbę publicznych lub prywatnych repozytoriów. GitLab oferuje samodzielną alternatywę pozwalającą na prywatny rozwój bez polegania na hostingu stron trzecich.
Proces pierwszego pobrania repozytorium Git nazywa się klonowaniem. Klonowanie obejmuje wszystkie informacje o repozytorium w danym momencie, jednak aby z czasem repozytorium było aktualne, musisz ściągać nowe wersje. Aby to zrobić, po prostu otwórz okno terminala w katalogu z lokalną wersją repozytorium i wpisz polecenie „git pull”.
Działanie tego polecenia jest szczególnie proste, jeśli chcesz tylko pobrać zaktualizowaną wersję repozytorium; wersja lokalna zostanie zaktualizowana, aby pasowała do wersji zdalnej. Możesz jednak zauważyć, że mogą wystąpić problemy, jeśli dokonałeś modyfikacji lokalnej wersji.
Polecenie „git pull” faktycznie uruchamia dwa oddzielne polecenia „git fetch” i „git merge FETCH HEAD”. Podkomenda „git fetch” ściąga najnowszą wersję z repozytorium online i tymczasowo ją przechowuje. Polecenie podrzędne „git merge FETCH HEAD” łączy następnie lokalne zmiany z pobraną wersją, przy czym preferowane są nowsze zatwierdzenia.
Wskazówka: „Zatwierdzenie git” to przesłanie zmiany, możliwe jest posiadanie wielu zatwierdzeń lokalnych i zdalnych, które wykonują te same lub różne rzeczy. Zatwierdzenia lokalne nie są widoczne dla wersji zdalnej, dopóki zmiany nie zostaną przekazane. Każdy zatwierdzenie szczegółowo opisuje, jakie zmiany zostały wprowadzone, i zawiera sygnaturę czasową.
Konflikty między wersją lokalną i zdalną
Idealnie w scenariuszu scalania nie będzie konfliktów, a proces scalania zakończy się automatycznie. Scalanie może być szczególnie łatwe, jeśli wprowadzono niewiele zmian lub jeśli zmiany lokalne nie kolidują ze zmianami zdalnymi. Jeśli jednak wystąpią sprzeczne złożone zmiany w tej samej części kodu, Git zgłosi błąd scalania.
W tym momencie możesz przerwać scalanie za pomocą polecenia „git merge –abort” lub spróbować ręcznie rozwiązać konflikty. Polecenia „git mergetool” i „git diff” dostarczają graficznego przykładu różnic, które powinny ułatwić jak najłatwiejsze sprawdzenie, jakie zmiany należy wprowadzić ręcznie, aby umożliwić zakończenie scalania. Po rozwiązaniu wszystkich konfliktów wpisz polecenie „git merge –continue”, aby zakończyć scalanie.
Polecenie „git mergetool” otworzy takie narzędzie graficzne, które pomoże ci w ręcznym rozwiązywaniu konfliktów.