Git

Výukový program Git pro začátečníky

Výukový program Git pro začátečníky

Vývoj softwaru je práce založená na spolupráci. Jako softwarový inženýr musíte sdílet svou práci s ostatními. Sdílení kódu a spolupráce se ale může komplikovat. Je obtížné sledovat různé změny, ke kterým dojde během životního cyklu softwaru. Vývojové týmy se tedy při procesu softwarové spolupráce spoléhají na nástroje pro správu verzí. Git je jedním z nejvýznamnějších nástrojů pro správu verzí v softwarovém průmyslu.

Spropitné: V tomto kurzu se naučíte, jak používat základy Gitu. Každá část končí několika otázkami. Než začnete číst tuto sekci, můžete si přečíst otázky. To vám pomůže pochopit důležité body a věnovat jim pozornost.

Bavte se učit Git!

Git: Stručný přehled

Git je systém řízení distribuované verze. Sleduje veškeré změny, které ve svých souborech a složkách provedete. Usnadňuje ukládání probíhající práce. Pokud dojde k problému, můžete snadno zkontrolovat dřívější verzi souboru nebo složky. V případě potřeby můžete dokonce vrátit celou svou základnu kódu na starší verzi.

Vývoj Gitu začal v roce 2005. Skupina linuxových jader udržovala svůj kód v BitKeeper, proprietárním distribuovaném systému řízení verzí. BitKeeper však zrušil bezplatné používání produktu. Takže Linus Torvalds, tvůrce a hlavní vývojář Linuxu, navrhl nový systém řízení distribuované verze open-source, který by splňoval požadavky vývojové komunity Linuxu. A Git se narodil.

Jako systém řízení distribuované verze Git nevyžaduje centralizované oprávnění ke sledování kódu. Starší ovládací prvky centralizované verze jako CVS, SVN nebo Perforce vyžadují, aby centrální servery udržovaly historii změn. Git může lokálně sledovat všechny změny a pracovat peer-to-peer. Je tedy univerzálnější než centralizované systémy.

Dotazy:

Instalace Git

Pro systémy Linux je instalace Gitu snadná. Pokud používáte distribuci založenou na Debianu, jako je Ubuntu, můžete použít apt install:

$ sudo apt nainstalovat git-all

Pro Fedoru, RHEL nebo CentOS můžete použít:

$ sudo dnf install git-all

Můžete zkontrolovat, zda byl Git nainstalován, pomocí následujícího příkazu:

$ git --verze

Mělo by vám ukázat verzi nainstalovaného Gitu, například:

git verze 2.17.0

Jakmile si nainstalujete Git, je čas nastavit své uživatelské jméno a e-mail:

$ git config - globální uživatel.jméno "vaše uživatelské jméno"
$ git config - globální uživatel.e-mail „[e-mail chráněn]“

Pomocí následujícího příkazu můžete zkontrolovat, zda byly konfigurace správně nastaveny:

$ git config - seznam
uživatel.jméno = vaše uživatelské jméno
uživatel.email = vaše uživatelské jméno @ příklad.com

Spropitné: Je důležité nastavit uživatele.jméno a uživatel.e-mail, protože tyto konfigurace se používají ke sledování vašich změn.

Dotazy

Koncepční porozumění Gitu

Abyste mohli používat Git, musíte nejprve porozumět těmto čtyřem konceptům:

Pracovní adresář, pracovní oblast a úložiště jsou ve vašem počítači lokální. Vzdáleným úložištěm může být jakýkoli jiný počítač nebo server. Pojďme si tyto koncepty představit jako čtyři pole, do kterých se vejdou standardní papíry A1.

Předpokládejme, že píšete dokument ručně na papír A1 u svého stolu. Tento dokument ponecháte v poli pracovního adresáře. V určité fázi své práce se rozhodnete, že jste připraveni si ponechat kopii práce, kterou jste již provedli. Provedete tedy fotokopii svého aktuálního papíru a vložíte jej do pracovní schránky.

Pracovní pole je dočasná oblast. Pokud se rozhodnete zlikvidovat fotokopii v pracovním poli a aktualizovat ji o novou kopii dokumentu pracovního adresáře, nebude existovat žádný trvalý záznam tohoto připraveného dokumentu.

Předpokládejme, že jste si docela jisti, že chcete uchovat trvalý záznam o dokumentu, který máte v pracovní ploše. Poté vytvoříte fotokopii dokumentu pracovní schránky a přesunete ji do schránky úložiště.

Když jej přesunete do pole úložiště, stanou se dvě věci:

  1. Snímek dokumentu se uloží trvale.
  2. Je vytvořen záznam souboru protokolu, který je součástí snímku.

Položka protokolu vám pomůže najít konkrétní snímek dokumentu, pokud jej v budoucnu budete potřebovat.

Nyní v poli místního úložiště máte snímek své práce a položku protokolu. Ale je k dispozici pouze vám. Takže si vytvoříte kopii dokumentu místního úložiště spolu se souborem protokolu a vložíte jej do pole v místnosti zásobování společností. Nyní může kdokoli ve vaší společnosti přijít a vytvořit kopii vašeho dokumentu a odnést si ji ke svému stolu. Krabicí v zásobovací místnosti by bylo vzdálené úložiště.

Vzdálené úložiště je něco jako sdílení dokumentu pomocí Dokumentů Google nebo Dropbox.

Dotazy:

Vaše první úložiště Git

Jakmile máte nainstalovaný Git, můžete začít vytvářet vlastní úložiště Git. V této části se chystáte inicializovat úložiště Git.

Předpokládejme, že pracujete na projektu vývoje webových aplikací. Pojďme vytvořit složku s názvem project_helloworld a přejděte do adresáře:

$ mkdir project_helloworld
$ cd project_helloworld

Můžete říct Gitu, aby sledoval tento adresář pomocí následujícího příkazu:

$ git init

Měli byste vidět výstup, jako je tento:

Inicializované prázdné úložiště Git v / Users / zakh / _work / LearnGIT / git_tutorial /
project_helloworld /.sakra

Nyní budou všechny soubory a složky uvnitř project_helloworld sledovány Gitem.

Dotazy:

Základní příkazy Git: stav, přihlášení, přidání a potvrzení

Příkaz status zobrazuje aktuální stav pracovního adresáře a příkaz log historii. Zkusme příkaz status:

stav $ git
Na pobočce
Počáteční potvrzení
nic k spáchání (vytváření / kopírování souborů a sledování pomocí příkazu „git add“)

Výstup příkazu git status říká, že jste na hlavní větvi. Toto je výchozí větev, kterou Git inicializuje. (Můžete si vytvořit vlastní pobočky. Více o pobočkách později). Výstup také říká, že se není čeho dopustit.

Zkusme příkaz log:

$ git log
fatální: vaše aktuální větev „master“ ještě nemá žádné závazky

Je tedy čas vytvořit nějaký kód. Vytvořme soubor s názvem index.html:


Moje webová stránka


Ahoj světe

K vytvoření souboru můžete použít textový editor. Po uložení souboru znovu zkontrolujte stav:

stav $ git
Na pobočce
Počáteční potvrzení
Nesledované soubory:
(použijte „git add … “Zahrnout do toho, co bude spácháno)
index.html
není přidáno nic k potvrzení, ale jsou přítomny nesledované soubory (ke sledování použijte „git add“)

Git vám říká, že máte soubor s názvem index.html ve vašem pracovním adresáři, který není sledován.

Pojďme se ujistit, index.html je sledován. Budete muset použít příkaz add:

$ git přidat index.html

Případně můžete použít „.„Možnost přidat vše do adresáře:

$ git přidat .

Nyní zkontrolujme stav znovu:

stav $ git
Na pobočce
Počáteční potvrzení
Provedené změny:
(použijte "git rm --cached … “Na scénu)
nový soubor: index.html

Zelená označuje, že index.html soubor je sledován Gitem.

Spropitné: Jak je uvedeno ve výše uvedených pokynech, pokud použijete příkaz:

$ git rm - index uložený v mezipaměti.html

Váš index.html se vrátí zpět do nesledovaného stavu. Budete ji muset znovu přidat, abyste ji přivedli zpět k přípravě.]

Podívejme se na protokol znovu:

$ git log
fatální: vaše aktuální větev „master“ ještě nemá žádné závazky

Takže i když Git sleduje index.html, v úložišti Git zatím není o souboru nic. Pojďme potvrdit naše změny:

$ git commit -m "Index potvrzení.html "
Výstup by měl vypadat asi takto:
[master (root-commit) f136d22] Index potvrzení.html
1 soubor změněn, 6 vložení (+)
vytvořit režim 100644 index.html

Text uvnitř uvozovek za „-m“ je komentář, který bude vložen do souboru protokolu. Můžete použít git commit bez „-m“, ale poté Git otevře textový editor, který vás požádá o napsání komentářů. Je snazší vkládat komentáře přímo do příkazového řádku.

Nyní se podívejme na náš logovací soubor:

$ git log
spáchat f136d22040ba81686c9522f4ff94961a68751af7
Autor: Zak H
Datum: Po 4. června 16:53:42 2018-0700
Rejstříkový index.html

Můžete vidět, že ukazuje potvrzení. Úspěšně jste provedli změny ve vašem místním úložišti. Pokud chcete stejný protokol stručně zobrazit, můžete použít následující příkaz:

$ git log - online
f136d22 Revizní index.html

Do budoucna použijeme tuto formu příkazu log, protože usnadňuje pochopení toho, o co jde.

Začněme s úpravami indexu.html. Otevřete index.html soubor v editoru a změňte řádek „Hello world“ na „Hello world! To jsem já!“A uložte to. Pokud stav znovu zkontrolujete, uvidíte, že si Git všiml, že soubor upravujete:

stav $ git
Na pobočce
Změny, které nebyly provedeny pro potvrzení:
(použijte „git add … “K aktualizaci toho, co bude potvrzeno)
(použijte "git checkout." -- … “Zahodit změny v pracovním adresáři)
upraveno: index.html
k potvrzení nebyly přidány žádné změny (použijte „git add“ a / nebo „git commit -a“)

Změna je stále ve vašem pracovním adresáři. Musíte ji zatlačit do pracovní oblasti. Použijte příkaz add, který jste použili dříve:

$ git přidat .

Znovu zkontrolujte stav:

stav $ git
Na pobočce
Provedené změny:
(použijte "git reset HEAD … “Na scénu)
upraveno: index.html

Nyní jsou vaše změny v pracovní oblasti. Můžete jej odevzdat do úložiště pro trvalou úschovu:

$ git commit -m "Upravený index.html k šťastnější zprávě "
[master 0586662] Upravený index.html k šťastnější zprávě
1 soubor změněn, 1 vložení (+), 1 smazání (-)

V protokolu můžete zkontrolovat trvalé změny:

$ git log - online
0586662 Upravený index.html k šťastnější zprávě
f136d22 Revizní index.html

V této části jste se naučili používat příkazy status, log, add a commit ke sledování svých dokumentů v Gitu.

Dotazy:

  • Co dělá stav git?
  • Co dělá git log?
  • Co dělá git add??
  • Co dělá git commit??

Zpět na starší soubory pomocí služby Checkout

Když spácháte soubor v Gitu, vytvoří se pro každé potvrzení jedinečný hash. Můžete je použít jako identifikátory pro návrat ke starší verzi.

Předpokládejme, že se chcete vrátit k dřívější verzi indexu.html. Nejprve se podívejme na index.html v aktuálním stavu:

$ kočičí index.html

Moje webová stránka


Ahoj světe! To jsem já!

Vidíte, že máte novější verzi („Hello world! To jsem já!”). Pojďme zkontrolovat protokol:

$ git log - online
0586662 Upravený index.html k šťastnější zprávě
f136d22 Revizní index.html

Hodnota hash pro předchozí verzi byla f136d22 („Hello world“).  K této verzi se můžete dostat pomocí příkazu checkout:

$ git pokladna f136d22
Poznámka: Odhlášení „f136d22“.
Jste ve stavu „odpojená HLAVA“. Můžete se rozhlédnout a provádět experimentální změny
a spáchat je, a můžete zrušit všechny závazky, které v tomto stavu uděláte
aniž by to ovlivnilo jakékoli pobočky provedením další platby.
Chcete-li vytvořit novou větev, která zachová vaše vytvořené závazky, můžete
udělejte to (nyní nebo později) opětovným použitím -b s příkazem pokladny. Příklad:
pokladna git -b
HEAD je nyní na f136d22 ... Committing index.html

Pokud se podíváte na obsah indexu.html, uvidíte:

$ index koček.html

Moje webová stránka


Ahoj světe

Má pouze „Hello world“. Takže váš index.html se změnil na starší verzi. Pokud zkontrolujete stav:

stav $ git
HEAD se oddělil na f136d22
nic k spáchání, pracovní adresář čistý

Git vám v podstatě říká, že HEAD není na posledním potvrzení. Můžete se vrátit k poslednímu potvrzení odevzdáním hlavní větve pomocí následujícího příkazu:

$ git pokladna master
Předchozí pozice HEAD byla f136d22 ... Index potvrzení.html
Přepnuto na větev „master“

Nyní, když zkontrolujete stav:

stav $ git
Na pobočce
nic k spáchání, pracovní adresář čistý

Červené varování zmizelo. Také pokud zkontrolujete svůj index.html, měli byste se vrátit k nejnovější verzi:

$ index koček.html

Moje webová stránka

Ahoj světe! To jsem já!

Příkaz pokladny vás dostane do různých stavů. Více o pokladně se dozvíme v další části.

Dotazy:

  • Jak používáte příkaz git checkout k přechodu na starší verzi souboru?
  • Jak používáte git checkout k návratu k nejnovější verzi souboru?

Pokladna, větvení a sloučení

Větvení je jednou z nejlepších funkcí Gitu. Pomůže vám oddělit práci a více experimentovat. V jiných systémech pro správu verzí bylo větvení časově náročné a obtížné. Git usnadnil větvení a slučování.

Jak jste si všimli v příkazu status, při vytváření nového úložiště Git se nacházíte v hlavní větvi.

stav $ git
Na pobočce
nic k spáchání, pracovní adresář čistý

Předpokládejme, že vytváříte web pro svého přítele Davida. Chcete znovu použít kód svého vlastního webu. Větvení je skvělé řešení. Zavolejme pobočku david_website.

Můžete vydat následující příkaz:

$ git větev david_website

Pomocí následujícího příkazu můžete zobrazit všechny větve:

$ git větev - seznam
david_website
* mistr

Hvězda (*) vedle pána znamená, že jste stále v hlavní větvi. Pobočku david_website můžete zkontrolovat pomocí následujícího příkazu:

$ git pokladna david_website
Přepnuto na větev „david_website“

Nyní, když znovu zkontrolujete seznam poboček, uvidíte:

$ git větev - seznam
* david_website
mistr

Takže jste na větvi david_website.

Pojďme změnit index.html z „Hello world! To jsem já!“Na„ Ahoj světe! To je David!„A pak to zinscenujte a odevzdejte:

$ git přidat .
$ git commit -m "Změněný web pro Davida"

Pokud zkontrolujete protokoly, měli byste vidět:

$ git log - online
345c0f4 Změněný web pro Davida
0586662 Upravený index.html k šťastnější zprávě
f136d22 Revizní index.html

A váš indexový soubor by měl vypadat takto:

$ kočičí index.html

Moje webová stránka


Ahoj světe! To je David!

Nyní se podívejme na hlavní větev znovu:

$ git pokladna master
Přepnuto na větev „master“

Pokud zkontrolujete stav a protokol:

stav $ git
Na pobočce
nic k spáchání, pracovní adresář čistý
$ git log - online
0586662 Upravený index.html k šťastnější zprávě
f136d22 Revizní index.html

Všimněte si, že nemáte třetí potvrzení v masteru. Protože toto potvrzení je udržováno pouze ve větvi david_website.

To se stalo

Předpokládejme, že v této fázi se rozhodnete, že nechcete pokračovat na svém webu. Budeš jen vývojářem pro Davida. Chcete tedy sloučit změny ve větvi david_website s masterem. Z hlavní větve stačí vydat následující příkazy (příkaz stavu se používá ke kontrole, zda jste na správném místě):

stav $ git
Na pobočce
nic k spáchání, pracovní adresář čistý
 
$ git merge david_website
Aktualizace 0586662… 345c0f4
Rychle vpřed
index.html | 2 +-
1 soubor změněn, 1 vložení (+), 1 smazání (-)

Spropitné: Stahujete změny z david_website do master. Abyste toho dosáhli, musíte být na pánovi.

Nyní, pokud zkontrolujete protokol na hlavním serveru, uvidíte, že je tam třetí potvrzení:

$ git log - online
345c0f4 Změněný web pro Davida
0586662 Upravený index.html k šťastnější zprávě
f136d22 Revizní index.html

Úspěšně jste sloučili větev david_website do hlavní. A váš index.html pro hlavní větev vypadá stejně jako větev david_website:

$ kočičí index.html

Moje webová stránka


Ahoj světe! To je David!

Pobočku david_website si můžete ponechat:

$ git větev - seznam
david_website
* mistr

Nebo jej můžete smazat:

$ git branch -d david_website
Smazaná větev david_website (byla 345c0f4).

Po odstranění byste už neměli vidět větev david_website:

$ git větev - seznam
* mistr

Spropitné: Pokud se během sloučení Git nemůže sloučit automaticky, zobrazí se vám chyby konfliktu sloučení. V takovém případě musíte ručně vyřešit problémy se slučováním.

Dotazy:

  • Proč potřebujete větvení?
  • Jak větvíte a slučujete soubory a složky?

Vzdálené úložiště

Až dosud byla veškerá vaše práce lokální. Prováděli jste změny v místním úložišti. Ale je čas sdílet svou práci se světem.

Vzdálené úložiště Git je v podstatě další kopie vašeho místního úložiště, ke které mají přístup ostatní. Můžete nastavit server a nastavit jej jako vzdálené úložiště. Ale většina lidí používá pro tento účel GitHub nebo Bitbucket. Můžete si zde zdarma vytvořit veřejná úložiště, ke kterým má kdokoli přístup.

Pojďme vytvořit vzdálené úložiště na GitHubu.

Nejprve si musíte vytvořit účet GitHub []. Jakmile máte účet, vytvořte nové úložiště pomocí tlačítka „Nové úložiště“. Jako název úložiště použijte „project_website“ (pokud chcete, můžete si vybrat něco jiného).

Měla by se zobrazit karta Kód s pokyny, jako jsou tyto:

… Nebo vytvořte nové úložiště na příkazovém řádku

echo "# project_website" >> README.md
git init
git přidat README.md
git commit -m "první potvrzení"
git remote add origin git @ github.com: yourusername / project_website.sakra
git push -u origin master

Zkopírujte následující příkaz „git remote add origin“ a spusťte jej ve svém pracovním adresáři:

$ git remote add origin git @ github.com: yourusername / project_website.sakra

Poznámka: Ve vašem případě by vaše uživatelské jméno mělo být to, co jste použili k vytvoření účtu GitHub.

Ve výše uvedeném příkazu jste instruovali Git o umístění vzdáleného úložiště. Příkaz říká Git, že „původ“ vašeho pracovního adresáře project_helloworld bude „[chráněn e-mailem]: vaše uživatelské jméno / project_website.sakra “.

Nyní posuňte svůj kód z hlavní větve do původu (vzdálené úložiště):

$ git push origin master
Počítání objektů: 9, hotovo.
Delta komprese pomocí až 4 vláken.
Komprese objektů: 100% (6/6), hotovo.
Psaní objektů: 100% (9/9), 803 bajtů | 0 bajtů / s, hotovo.
Celkem 9 (delta 2), znovu použito 0 (delta 0)
remote: Resolving deltas: 100% (2/2), done.
Chcete-li git @ github.com: yourusername / project_website.sakra
* [nová větev] pán -> pán

Pokud obnovíte prohlížeč v GitHubu, měli byste vidět, že index.html soubor je tam nahoře. Váš kód je tedy veřejný a ostatní vývojáři si jej mohou zkontrolovat a upravit ve vzdáleném úložišti.

Jako vývojář budete pracovat s kódem jiných lidí. Takže stojí za to vyzkoušet pokladní kód z GitHubu.

Pojďme do nového adresáře, kde nemáte nic. Na pravé straně úložiště GitHub si všimnete tlačítka „Klonovat nebo stáhnout“. Pokud na něj kliknete, měl by vám poskytnout adresu SSH. Spusťte následující příkaz s adresou SSH:

$ git klon git @ github.com: yourusername / project_website.sakra

Výstup by měl vypadat takto:

$ git klon git @ github.com: yourusername / project_website.sakra
Klonování na 'project_website' ..
remote: Počítání objektů: 9, hotovo.
remote: Komprese objektů: 100% (4/4), hotovo.
remote: Celkem 9 (delta 2), znovu použito 9 (delta 2), znovu použito v balíčku 0
Přijímání objektů: 100% (9/9), hotovo.
Řešení delt: 100% (2/2), hotovo.
Kontrola připojení… hotovo.

Vytvoří project_website ve vaší čisté složce. Pokud vstoupíte dovnitř, měli byste vidět index.html z vašeho project_helloworld.

Dosáhli jste tedy následujícího:

  • Vytvořeno a provedeno změny v project_helloworld
  • Nahrál kód na GitHub na project_website
  • Stáhněte si kód z GitHubu

Pojďme další soubor z nového pracovního adresáře project_website:

$ touch ReadMe.md
$ git přidat .
$ git commit -m "Přidáno ReadMe.md "
$ git push origin master

Pokud obnovíte stránku GitHub project_website, měli byste vidět ReadMe.md soubor tam.

Poznámka: Když stáhnete kód z GitHubu, pracovní adresář automaticky zná původ. Nemusíte to definovat pomocí příkazu „git remote add origin“.

Dotazy:

  • Proč musíte používat vzdálená úložiště?
  • Jak nastavíte aktuální místní úložiště pro připojení ke vzdálenému úložišti?
  • Jak naklonujete vzdálená úložiště do místního počítače?

Závěr

Více informací o všech příkazech najdete v dokumentech Git []. I když jsou k dispozici nástroje uživatelského rozhraní Git, nejlepší způsob, jak zvládnout Git, je příkazový řádek. Získáte silnější základ pro vaši vývojovou práci.

Další studie:
  • https: // git-scm.com / dokumenty
  • https: // git-scm.com / book / en / v2
  • https: // git-scm.com / videa
Hry Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
OpenRA je herní engine Libre / Free Real Time Strategy, který obnovuje rané hry Westwood, jako je klasický Command & Conquer: Red Alert. Distribuované...
Hry Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Emulátor Dolphin vám umožní hrát vybrané hry Gamecube a Wii na osobních počítačích se systémem Linux (PC). Jako volně dostupný herní emulátor s otevř...
Hry Jak používat GameConqueror Cheat Engine v Linuxu
Jak používat GameConqueror Cheat Engine v Linuxu
Tento článek popisuje průvodce používáním cheatovacího modulu GameConqueror v systému Linux. Mnoho uživatelů, kteří hrají hry v systému Windows, často...