Vyhledávání na webu

Jak používat systém správy verzí Git v Linuxu [Komplexní příručka]


Kontrola verzí (kontrola revizí nebo kontrola zdroje) je způsob zaznamenávání změn souboru nebo kolekce souborů v průběhu času, abyste si později mohli vyvolat konkrétní verze. Systém správy verzí (nebo zkráceně VCS) je nástroj, který zaznamenává změny souborů v souborovém systému.

Existuje mnoho systémů pro správu verzí, ale v současnosti je nejoblíbenější a nejčastěji používaný Git, zejména pro správu zdrojového kódu. Řízení verzí lze ve skutečnosti použít pro téměř jakýkoli typ souboru v počítači, nejen se zdrojovým kódem.

Systémy/nástroje pro správu verzí nabízejí několik funkcí, které umožňují jednotlivcům nebo skupině lidí:

  • vytvářet verze projektu.
  • přesně sledovat změny a řešit konflikty.
  • sloučit změny do společné verze.
  • vrátit zpět a vrátit změny ve vybraných souborech nebo celém projektu.
  • přístup k historickým verzím projektu a porovnání změn v čase.
  • podívejte se, kdo naposledy upravil něco, co by mohlo způsobovat problém.
  • vytvořit bezpečnou offsite zálohu projektu.
  • používat více strojů pro práci na jednom projektu a mnohem více.

Projekt pod systémem správy verzí, jako je Git, bude mít hlavně tři části, konkrétně:

  • úložiště: databáze pro záznam stavu nebo změn vašich projektových souborů. Obsahuje všechna potřebná metadata Git a objekty pro nový projekt. Všimněte si, že toto je obvykle to, co se zkopíruje, když klonujete úložiště z jiného počítače v síti nebo na vzdáleném serveru.
  • pracovní adresář nebo oblast: ukládá kopii souborů projektu, na kterých můžete pracovat (přidávat, mazat a další úpravy).
  • pracovní oblast: soubor (známý jako index pod Git) v adresáři Git, který ukládá informace o změnách, které jste připraveni odevzdat (uložit stav souboru nebo sady souborů) do úložiště.

Existují dva hlavní typy VCS, přičemž hlavním rozdílem je počet úložišť:

  • Centralizované systémy pro správu verzí (CVCS): zde každý člen projektového týmu dostane svůj vlastní místní pracovní adresář, změny však uloží pouze do jediného centrálního úložiště.
  • Distributed Version Control Systems (DVCS): v tomto rámci získá každý člen projektového týmu svůj vlastní místní pracovní adresář a adresář Git, kde může provádět revizi. Poté, co jednotlivec provede lokálně potvrzení, ostatní členové týmu nebudou mít přístup ke změnám, dokud je neodešle do centrálního úložiště. Git je příkladem DVCS.

Úložiště Git může být navíc holé (úložiště, které nemá pracovní adresář) nebo nonholé (s funkčním adresář). Sdílená (nebo veřejná nebo centrální) úložiště by měla být vždy holá – všechna úložiště Github jsou holá.

Naučte se Správa verzí s Git

Git je bezplatný a otevřený zdroj, rychlý, výkonný, distribuovaný, snadno použitelný a oblíbený systém správy verzí, který je velmi efektivní u velkých projektů a má pozoruhodný systém větvení a slučování. Je navržen tak, aby zpracovával data spíše jako sérii snímků mini souborového systému, který je uložen v adresáři Git.

Pracovní postup pod Git je velmi jednoduchý: provedete úpravy souborů ve vašem pracovním adresáři a poté selektivně přidáte pouze ty soubory, které se změnily, do pracovní oblasti, aby byly součástí vašeho dalšího odevzdání.

Jakmile budete připraveni, provedete odevzdání, které vezme soubory z pracovní oblasti a uloží tento snímek trvale do adresáře Git.

Chcete-li nainstalovat Git v systému Linux, použijte příslušný příkaz pro vaši vybranou distribuci:

sudo apt install git   [On Debian/Ubuntu]
sudo yum install git   [On CentOS/RHEL]

Po instalaci Gitu se doporučuje sdělit Gitu, kdo jste, a uvést své celé jméno a e-mailovou adresu, a to následovně:

git config --global user.name “Aaron Kili”
git config --global user.email “[email ”

Chcete-li zkontrolovat nastavení Git, použijte následující příkaz.

git config --list 

Vytvoří nové úložiště Git

Sdílená úložiště nebo centralizované pracovní postupy jsou velmi běžné a to si zde ukážeme. Předpokládáme například, že jste dostali za úkol nastavit vzdálené centrální úložiště pro systémové administrátory/programátory z různých oddělení ve vaší organizaci, abyste mohli pracovat na projektu nazvaném bashscripts, který bude uložen pod /projects/scripts/na serveru.

SSH na vzdálený server a vytvořte potřebný adresář, vytvořte skupinu s názvem sysadmins (přidejte do této skupiny všechny členy projektového týmu, např. user admin), a nastavte příslušná oprávnění na tento adresář.

mkdir-p /projects/scripts/
groupadd sysadmins
usermod -aG sysadmins admin
chown :sysadmins -R /projects/scripts/
chmod 770 -R /projects/scripts/

Poté inicializujte holé úložiště projektu.

git init --bare /projects/scripts/bashscripts

V tomto okamžiku jste úspěšně inicializovali holý adresář Git, který je centrálním úložištěm projektu. Zkuste si udělat výpis adresáře, abyste viděli všechny soubory a adresáře v něm:

ls -la /projects/scripts/bashscripts/

Klonujte úložiště Git

Nyní naklonujte vzdálené sdílené úložiště Git do svého místního počítače pomocí SSH (můžete také klonovat pomocí HTTP/HTTPS, pokud máte nainstalovaný a vhodně nakonfigurovaný webový server, stejně jako případě většiny veřejných úložišť na Github), například:

git clone ssh://admin@remote_server_ip:/projects/scripts/bashscripts 

Chcete-li jej naklonovat do konkrétního adresáře (~/bin/bashscripts), použijte příkaz níže.

git clone ssh://admin@remote_server_ip:/projects/scripts/bashscripts ~/bin/bashscripts

Nyní máte lokální instanci projektu v nonhole úložišti (s pracovním adresářem), můžete vytvořit počáteční strukturu projektu (tj. přidat README.md soubor, podadresáře pro různé kategorie skriptů, např. recon pro ukládání průzkumných skriptů, sysadmin ro ukládání skriptů sysadmin atd.):

cd ~/bin/bashscripts/
ls -la

Zkontrolujte souhrn stavu Git

Chcete-li zobrazit stav svého pracovního adresáře, použijte příkaz status, který vám zobrazí všechny provedené změny; které soubory Git nesleduje; ty změny, které byly zinscenovány a tak dále.

git status 

Git Stage Changes and Commit

Dále uspořádejte všechny změny pomocí příkazu add s přepínačem -A a proveďte úvodní potvrzení. Příznak -a dává příkazu pokyn, aby automaticky připravil soubory, které byly změněny, a -m se používá k určení zprávy odevzdání:

git add -A
git commit -a -m "Initial Commit"

Publikování místních závazků do vzdáleného úložiště Git

Jako vedoucí projektového týmu můžete nyní, když jste vytvořili strukturu projektu, publikovat změny do centrálního úložiště pomocí příkazu push, jak je znázorněno na obrázku.

git push origin master

Právě teď by mělo být vaše místní úložiště git aktuální s centrálním úložištěm projektu (origin), můžete to potvrdit dalším spuštěním příkazu status.

git status

Můžete také informovat své kolegy, aby začali pracovat na projektu klonováním úložiště na jejich místní počítače.

Vytvořte novou větev Git

Větvení vám umožňuje pracovat na funkci vašeho projektu nebo rychle opravit problémy, aniž byste se dotkli kódové základny (hlavní větve). Chcete-li vytvořit novou větev a poté se do ní přepnout, použijte příkazy branch a checkout.

git branch latest
git checkout latest

Případně můžete vytvořit novou větev a přepnout se do ní v jednom kroku pomocí příkazu checkout s příznakem -b.

git checkout -b latest

Můžete také vytvořit novou větev založenou například na jiné větvi.

git checkout -b latest master

Chcete-li zkontrolovat, ve které větvi se nacházíte, použijte příkaz větev (hvězdička označuje aktivní větev):

git branch

Po vytvoření a přepnutí do nové větve proveďte v ní nějaké změny a proveďte nějaké potvrzení.

vim sysadmin/topprocs.sh
git status
git commit add  sysadmin/topprocs.sh
git commit -a -m 'modified topprocs.sh'

Sloučení změn z jedné větve do druhé

Chcete-li sloučit změny v testu větve do hlavní větve, přepněte na hlavní větev a proveďte sloučení.

git checkout master 
git merge test 

Pokud již určitou větev nepotřebujete, můžete ji smazat pomocí přepínače -d.

git branch -d test

Stáhnout změny ze vzdáleného centrálního úložiště

Za předpokladu, že členové vašeho týmu přesunuli změny do centrálního úložiště projektu, můžete si jakékoli změny stáhnout do místní instance projektu pomocí příkazu pull.

git pull origin
OR
git pull origin master	#if you have switched to another branch

Prohlédněte si úložiště Git a proveďte srovnání

V této poslední části se budeme zabývat některými užitečnými funkcemi Git, které sledují všechny aktivity, které se udály ve vašem úložišti, a umožňují vám tak zobrazit historii projektu.

První funkcí je protokol Git, který zobrazuje protokoly odevzdání:

git log

Další důležitou funkcí je příkaz show, který zobrazuje různé typy objektů (jako jsou commity, tagy, stromy atd..):

git show

Třetí důležitou funkcí, kterou potřebujete znát, je příkaz diff, který se používá k porovnání nebo zobrazení rozdílu mezi větvemi, zobrazení změn mezi pracovním adresářem a indexem, změn mezi dvěma soubory na disku a mnoho dalšího.

Chcete-li například ukázat rozdíl mezi hlavní a nejnovější větví, můžete spustit následující příkaz.

git diff master latest

Přečtěte si také: 10 nejlepších alternativ Git pro hostování projektů s otevřeným zdrojovým kódem

souhrn

Git umožňuje týmu lidí spolupracovat pomocí stejných souborů a zároveň zaznamenávat změny v souborech v průběhu času, aby si později mohli vyvolat konkrétní verze.

Tímto způsobem můžete Git používat pro správu zdrojového kódu, konfiguračních souborů nebo jakéhokoli souboru uloženého v počítači. Další dokumentaci si můžete přečíst v online dokumentaci Git.