Wyszukiwanie w witrynie

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.