Jump to content

Návod GIT 1 - verzování kódu [*]


Hip

Recommended Posts

  • Globální moderátor

Verzovací nástroj GIT

:1:

Ahoj, jak jsem dlouhou dobu sliboval, tak přináším návod na verzovací nástroj GIT. Ve zkratce o co se vůbec jedná. Jedná se o software, který umožňuje verzovat kód, který programujete. TJ. uděláte si 10 řádkovej soubor, uložíte pomocí gitu a máte jednu verzi. Pak přijdete druhý den, připíšete dalších 10 řádků a máte druhou verzi. 3. den ovšem něco upravíte a máte třetí verzi. Bez gitu byste museli mít 3 složky se třeba totožnejma souborama, kde jsou právě uvedené změny. GIT umožňuje toto právě vynechat a vy celou dobu pracujete pouze s jednou složkou, která nese všechny informace o všech verzích. 

Další velké plus, proč verzovat kód je to, že na jednom souboru může pracovat více lidí na různých počítačích a GIT umí následně soubory sjednotit v jeden a vystavit ho jako novou verzi.

V tomto návodu se dozvíte nejzákladnější práce s gitem tj:

  • clone (stáhne existující kód z gitu)
  • status (zobrazí aktuální změny vůči poslední verzi)
  • add (přidá vaše aktuální změny k plánované další verzi)
  • commit (potvrdí lokální změny jako novou verzi)
  • push  (odešle změny na remote server, kde si je budete moct prohlížet)

Spousta lidí používá pro verzování nějaké gui jako třeba sourcetree nebo rovnou ide, ovšem já nejsem zastánce gui u gitu, protože: U gui nevíte nikdy co to přesně dělá a nevidíte jaký je output gitu a za 2. u gui musíte hledat kde se to ovládá a je to zbytečně složité...

Příprava

1. Budeme potřebovat nainstalovat git:

LINUX: Stáhněte si balíček git:

  • Debian: apt-get install git
  • RedHat/RHEL: yum install git, dnf install git

MAC: Stáhněte si balíček git:

  • brew install git

WINDOWS: Tady to je složitý...

Linux/Mac uživatelé budou používat terminál, Windows uživatelé Git Bash (nový nainstalovaný program). Po celou dobu se budeme pohybovat ve složce /Projects a podsložkách. Všude budu psát preffix kde se aktuálně pohybujeme.

2. Budeme potřebovat git repositář. Pro demonstraci budu používat a odkazovat se na github.com. Toto je návod na práci s gitem, nikoli práci s githubem, proto napíšu body co je třeba splnit a přidám případně ostatní návody.

  1. Zaregistrujte si účet na githubu
  2. Vytvořte nový public repositář (https://docs.github.com/en/get-started/quickstart/create-a-repo)
  3. Zjistěte si URL vašeho repositáře. (Chceme url která začíná https nikoli ssh) Bod č. 3 tohoto návodu: https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository

Stažení repositáře

V předchozí části jsme vytvořily remote repositář, ve kterém máme README.md případně nic. Záleží zda jste nechali vygenerovat readme soubor při zakládání repositáře. 

Otevřeme si terminal/gitbash a budeme pracovat jen v něm.

  1. pomocí cd přejdeme do složky /Projects např. 
    cd /home/hip/Projects
  2. Nyní si stáhneme vytvořený repositář do pc pomocí clone:
    git clone [url]

    parametr url je url repositáře

  3. Nyní vejdeme do stažené složky

    cd [název složky = název projektu]

    název složky je název projektu zadávaný při vytvoření repositáře. Pro demonstrativní účely budu používat "mujProjekt"

Nyní máme stažený repositář, což je vlastně první verze našeho kódu a jsme ve složce, která je pod kontrolou gitu. Když se podíváte do složky, ukrývá se tam skrytá složka .git, která obsahuje informace o jednotlivých verzích, remote repo (což je u nás github) a hromadu dalších informací, aktuálně nepodstatných.

Práce se složkou/projektem

Ať je to k nevíře, se složkou mujProjekt se pracuje uplně normálně jako s každou jinou. Můžete ji celou kamkoliv přesunout, můžete v ní upravovat kód. Má to jeden jediný rozdíl, všechno co se upravuje ve složce může být součástí další verze kódu (ale nemusí).

Řekněme, že jsme pracovali, udělali nějaký kód a máme hotovo. Vyvtoříme si soubor helloworld.txt uvnitř složky /Projects/mujProjekt a obsah bude třeba

Hello world!

Máme práci hotovou a chceme potvrdit změny a odeslat na remote repo. Půjdeme zpět do terminálu

  1. Zjistíme jak jsme na tom přes status:
    git status

    Terminál nám vyhodí output, kde bude červený řádek podobný tomuto:

    N helloworld.txt

    Tím vidíme, že git ví o našich změnách.

  2. Nyní vytoříme novou verzi. Ovšem než to uděláme, musíme gitu říct, jaké soubory chceme do nové verze dát. To je náš helloworld.txt soubor:

    git add helloworld.txt

    Zkusíme si dát opět status a uvidíme, že soubor není červený, ale zelený. To znamená, že vyvtoření následující verze bude s tímto souborem.
    Vytvoříme verzi:

    git commit -m "Muj prvni commit"

    commit vytvoří verzie, parametr -m udává commit zprávu a zpráva je info ke commitu. Jak můžete vidět, není to version, ale commit. V gitu se označuje verze jako commit, takže od teď budu používat slovo commit. 

  3. Nyní máme commitnuto a změny jsou lokálně u nás. Abychom změny dostali do remote repo, postačí nám k tomu push:

    git push

    Toto odešle změny na github, naše remote repo. Ikdyž se jedná o public repository, tak pushovat změny může jen oprávněný uživatel. V tuto chvíli vám vyskočí prohlížeč a požádá vás o přihlášení. Přihlásíte se a proces se automaticky dokončí. 

  4. Nyní když se podíváme, tak změny jsou na githubu. 

Závěr

Toto je nejzákladnější práce s gitem. Zkuste si takhle udělat pár dalších commitů a poslat si je tam. Udělejte si tam třeba další složky. Když používáte add tak nemusíte specifikovat každý soubor extra, ale stačí napsat název složky a automaticky to přidá všechny změněné soubory ve složce. 

Dejte sem nějaký ohlas a já udělám další část, o něco složitější. 
PS: Dnes to po sobě nečtu, nemám čas.

  • Děkuji (+1) 1
  • Líbí se mi to! (+1) 3
Link to comment
Share on other sites

  • Globální moderátor
před 4hodinami, Bloodman said:

Vynechal si SSH kluce na autorizaciu gitu. GPG na podpis commitov. Line ending config "core.autocrlf".

Pokial repo nemas, tak git init, set origin a push master na origin.

 

Záměrně. (Proto je tam i povinně public repository) Je to první díl. Pokud jsi to četl celé, tak:

 

před 4hodinami, Hip said:

Dejte sem nějaký ohlas a já udělám další část, o něco složitější. 

Vynechal jsem spoustu věcí, protože narvat vše do jednoho návodu by byl obrovskej overkill. Radši budu dávkovat postupně. 

---------------------------------------

před 27minutami, kazlik said:

na macos se nemusí git instalovat a je součástí systému, ne?

To netuším, ale myslím, že jsem taky musel instalovat. Konec konců i na linuxu je to snad předinstalovaný, ale taky si nepamatuju. 

Link to comment
Share on other sites

  • Globální moderátor
před 15minutami, Bloodman said:

Do public repository tiez nevies pushovat bez SSH kluca

Tvl, tak jsem blbej. Mě to vůbec nedošlo. Dobrej point...

 

EDIT: Upravil jsem push informace. Díky za point

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...