Jak korzystać z systemu kontroli wersji Git w systemie Linux [Kompleksowy przewodnik]
Kontrola wersji (kontrola wersji lub kontrola źródła) to sposób rejestrowania zmian w pliku lub zbiorze plików na przestrzeni czasu, dzięki czemu można później przywołać określone wersje. System kontroli wersji (lub w skrócie VCS) to narzędzie rejestrujące zmiany w plikach w systemie plików.
Istnieje wiele systemów kontroli wersji, ale Git jest obecnie najpopularniejszym i najczęściej używanym, zwłaszcza do zarządzania kodem źródłowym. Kontroli wersji można właściwie używać do prawie każdego typu pliku na komputerze, nie tylko do kodu źródłowego.
Systemy/narzędzia kontroli wersji oferują kilka funkcji, które umożliwiają pojedynczym osobom lub grupie osób:
- tworzyć wersje projektu.
- dokładnie śledź zmiany i rozwiązuj konflikty.
- scalić zmiany we wspólną wersję.
- wycofywanie i cofanie zmian w wybranych plikach lub całym projekcie.
- uzyskaj dostęp do historycznych wersji projektu, aby porównać zmiany w czasie.
- zobacz, kto ostatnio zmodyfikował coś, co może być przyczyną problemu.
- utwórz bezpieczną kopię zapasową projektu poza siedzibą firmy.
- używać wielu maszyn do pracy nad jednym projektem i nie tylko.
Projekt objęty systemem kontroli wersji takim jak Git będzie miał głównie trzy sekcje, a mianowicie:
- repozytorium: baza danych służąca do rejestrowania stanu plików projektu lub zmian w nich. Zawiera wszystkie niezbędne metadane i obiekty Git dla nowego projektu. Należy pamiętać, że zwykle jest to kopiowane podczas klonowania repozytorium z innego komputera w sieci lub na serwerze zdalnym.
- katalog lub obszar roboczy: przechowuje kopię plików projektu, nad którymi możesz pracować (dodawać, usuwać i wykonywać inne czynności modyfikacyjne).
- obszar przejściowy: plik (znany jako indeks w Git) w katalogu Git, który przechowuje informacje o zmianach, które możesz zatwierdzić (zapisać stan pliku lub zestawu plików) do repozytorium.
Istnieją dwa główne typy VCS, a główną różnicą jest liczba repozytoriów:
- Scentralizowane systemy kontroli wersji (CVCS): tutaj każdy członek zespołu projektowego otrzymuje swój własny lokalny katalog roboczy, jednak zatwierdza zmiany tylko w jednym centralnym repozytorium.
- Rozproszone systemy kontroli wersji (DVCS):: w ramach tego każdy członek zespołu projektowego otrzymuje swój własny lokalny katalog roboczy i katalog Git, w którym może wprowadzać zatwierdzenia. Gdy dana osoba dokona lokalnego zatwierdzenia, pozostali członkowie zespołu nie będą mieli dostępu do zmian, dopóki nie prześle ich do centralnego repozytorium. Git jest przykładem DVCS.
Ponadto repozytorium Git może być puste (repozytorium, które nie ma katalogu roboczego) lub nie-gołe (z działającym informator). Repozytoria współdzielone (lub publiczne lub centralne) powinny zawsze być puste – wszystkie repozytoria Github są puste.
Naucz się kontroli wersji z Git
Git to darmowy i otwarty, szybki, wydajny, rozproszony, łatwy w użyciu i popularny system kontroli wersji, który jest bardzo wydajny w przypadku dużych projektów i ma niezwykły system rozgałęziania i łączenia. Został zaprojektowany do obsługi danych bardziej jak seria migawek minisystemu plików, który jest przechowywany w katalogu Git.
Przepływ pracy w Git jest bardzo prosty: modyfikujesz pliki w swoim katalogu roboczym, a następnie selektywnie dodajesz tylko te pliki, które uległy zmianie, do obszaru tymczasowego, aby były częścią następnego zatwierdzenia.
Kiedy już będziesz gotowy, wykonujesz zatwierdzenie, które pobiera pliki z obszaru testowego i zapisuje tę migawkę na stałe w katalogu Git.
Aby zainstalować Gita w systemie Linux, użyj polecenia odpowiedniego dla wybranej dystrybucji:
sudo apt install git [On Debian/Ubuntu]
sudo yum install git [On CentOS/RHEL]
Po zainstalowaniu Git zaleca się, abyś powiedział Git, kim jesteś, podając swoje imię i nazwisko oraz adres e-mail w następujący sposób:
git config --global user.name “Aaron Kili”
git config --global user.email “[email ”
Aby sprawdzić ustawienia Git, użyj następującego polecenia.
git config --list
Tworzy nowe repozytorium Git
Współdzielone repozytoria lub scentralizowane przepływy pracy są bardzo powszechne i właśnie to tutaj zademonstrujemy. Zakładamy na przykład, że otrzymałeś zadanie skonfigurowania zdalnego centralnego repozytorium dla administratorów systemu/programistów z różnych działów Twojej organizacji w celu pracy nad projektem o nazwie bashscripts, który będzie przechowywany w folderze /projects/scritpts/ na serwerze.
SSH na zdalnym serwerze i utwórz niezbędny katalog, utwórz grupę o nazwie sysadmins (dodaj do tej grupy wszystkich członków zespołu projektowego, np. user admin) i ustaw odpowiednie uprawnienia ten katalog.
mkdir-p /projects/scripts/
groupadd sysadmins
usermod -aG sysadmins admin
chown :sysadmins -R /projects/scripts/
chmod 770 -R /projects/scripts/
Następnie zainicjuj samo repozytorium projektu.
git init --bare /projects/scripts/bashscripts
W tym momencie pomyślnie zainicjowałeś czysty katalog Git, który jest centralnym miejscem przechowywania projektu. Spróbuj sporządzić listę katalogu, aby zobaczyć wszystkie znajdujące się w nim pliki i katalogi:
ls -la /projects/scripts/bashscripts/
Sklonuj repozytorium Git
Teraz sklonuj zdalne udostępnione repozytorium Git na swój komputer lokalny przez SSH (możesz także sklonować przez HTTP/HTTPS, jeśli masz zainstalowany i odpowiednio skonfigurowany serwer WWW, podobnie jak w przypadku większości publicznych repozytoriów na Githubie), na przykład:
git clone ssh://admin@remote_server_ip:/projects/scripts/bashscripts
Aby sklonować go do określonego katalogu (~/bin/bashscripts), użyj poniższego polecenia.
git clone ssh://admin@remote_server_ip:/projects/scripts/bashscripts ~/bin/bashscripts
Masz teraz lokalną instancję projektu w niegołym repozytorium (z katalogiem roboczym), możesz stworzyć początkową strukturę projektu (tj. dodać plik README.md, podkatalogi dla różnych kategorii skryptów, np. recon do przechowywania skryptów rozpoznawczych, sysadmin ro przechowujący skrypty sysadmin itp.):
cd ~/bin/bashscripts/
ls -la
Sprawdź podsumowanie statusu Git
Aby wyświetlić status swojego katalogu roboczego, użyj polecenie status, które pokaże Ci wszelkie wprowadzone zmiany; które pliki nie są śledzone przez Git; zmiany, które zostały zainscenizowane i tak dalej.
git status
Zmiany na etapie Git i zatwierdzenie
Następnie wprowadź wszystkie zmiany za pomocą polecenie add z przełącznikiem -A
i wykonaj wstępne zatwierdzenie. Flaga -a
instruuje polecenie, aby automatycznie przygotowało zmodyfikowane pliki, a flaga -m
służy do określenia komunikatu zatwierdzenia:
git add -A
git commit -a -m "Initial Commit"
Publikuj lokalne zatwierdzenia w zdalnym repozytorium Git
Jako lider zespołu projektowego, po utworzeniu struktury projektu możesz opublikować zmiany w centralnym repozytorium za pomocą polecenie push, jak pokazano.
git push origin master
W tej chwili Twoje lokalne repozytorium git powinno być aktualne w stosunku do centralnego repozytorium projektu (Origin). Możesz to sprawdzić, uruchamiając jeszcze raz polecenie status.
git status
Możesz także poinformować współpracowników o rozpoczęciu pracy nad projektem poprzez klonowanie repozytorium na ich lokalne komputery.
Utwórz nową gałąź Git
Rozgałęzianie umożliwia pracę nad funkcją projektu lub szybkie naprawianie problemów bez dotykania bazy kodu (gałęzi głównej). Aby utworzyć nowy oddział, a następnie się do niego przełączyć, użyj odpowiednio poleceń oddział i kasa.
git branch latest
git checkout latest
Alternatywnie możesz utworzyć nową gałąź i przejść do niej w jednym kroku, używając polecenie checkout z flagą -b
.
git checkout -b latest
Możesz także utworzyć nowy oddział na przykład w oparciu o inny oddział.
git checkout -b latest master
Aby sprawdzić w którym oddziale się znajdujesz użyj polecenie oddział (znak gwiazdki wskazuje aktywny oddział):
git branch
Po utworzeniu i przejściu do nowej gałęzi dokonaj w niej pewnych zmian i wykonaj kilka zatwierdzeń.
vim sysadmin/topprocs.sh
git status
git commit add sysadmin/topprocs.sh
git commit -a -m 'modified topprocs.sh'
Scal zmiany z jednej gałęzi do drugiej
Aby scalić zmiany w teście gałęzi z gałęzią główną, przełącz się do gałęzi głównej i wykonaj scalanie.
git checkout master
git merge test
Jeśli nie potrzebujesz już określonej gałęzi, możesz ją usunąć za pomocą przełącznika -d
.
git branch -d test
Pobierz zmiany ze zdalnego centralnego repozytorium
Zakładając, że członkowie Twojego zespołu przesłali zmiany do centralnego repozytorium projektu, możesz pobrać wszelkie zmiany do lokalnej instancji projektu za pomocą polecenie pull.
git pull origin
OR
git pull origin master #if you have switched to another branch
Sprawdź repozytorium Git i wykonaj porównania
W tej ostatniej sekcji omówimy kilka przydatnych funkcji Git, które śledzą wszystkie działania, które miały miejsce w Twoim repozytorium, umożliwiając w ten sposób przeglądanie historii projektu.
Pierwszą funkcją jest dziennik Git, który wyświetla dzienniki zatwierdzeń:
git log
Kolejną ważną funkcją jest polecenie show, które wyświetla różne typy obiektów (takie jak zatwierdzenia, tagi, drzewa itp.):
git show
Trzecią ważną funkcją, którą musisz znać, jest polecenie diff, używane do porównywania lub pokazywania różnic między gałęziami, wyświetlania zmian między katalogiem roboczym a indeksem, zmian między dwoma plikami na dysku i wielu innych.
Na przykład, aby pokazać różnicę między gałęzią główną a najnowszą, możesz uruchomić następujące polecenie.
git diff master latest
Przeczytaj także: 10 najlepszych alternatyw Git do hostowania projektów Open Source
Streszczenie
Git umożliwia zespołowi ludzi wspólną pracę przy użyciu tych samych plików, rejestrując jednocześnie zmiany w plikach w czasie, aby móc później przywołać określone wersje.
W ten sposób możesz używać Gita do zarządzania kodem źródłowym, plikami konfiguracyjnymi lub dowolnym plikiem przechowywanym na komputerze. Dalszą dokumentację można znaleźć w dokumentacji Git Online.