GNU/Linux >> Znalost Linux >  >> Linux

Jak na to:Co je Git a Github? Jak to mám používat a proč by mě to mělo zajímat?

Git vytvořil Linus Torvalds v roce 2005, původně jako software pro správu verzí, aby přispěvatelům lépe umožnil nahrávat kód do linuxového jádra. Git je systém pro správu verzí. Někdy označovaný jako SCM (source control management) systém.

Od té doby jeho použití daleko přerostlo linuxový ekosystém a používají jej miliony softwarových vývojářů po celém světě (42,9 % všech softwarových vývojářů jej používá přes jakýkoli jiný systém správy verzí). Není to jen pro vývojáře softwaru, běžné joe, kteří chtějí sdílet nebo ukládat věci, například konfigurační soubory nebo webové stránky. Git jim umožňuje mít místo, kde mohou ukládat (a co je důležitější, spolupracovat – nebo se slučovat ) jejich obsah.

Co přesně dělá, laicky řečeno?

Zde jsou dva hlavní důvody, proč byste měli chtít používat Git:

  • Spolupráce :Chcete spolupracovat na některých souborech – např. vývojář napíše jeden řádek kódu a jiný vývojář napíše dva řádky kódu. To lze ‚sloučit‘ zpět na ‚git server‘, takže se z toho stane jeden soubor.
  • Kontrola/sledování verze :Chcete mít možnost sledovat změny, které provedli ostatní přispěvatelé. Schopnost sledování vám umožní zjistit, zda existují chyby, které je třeba vrátit.

Dalším důvodem je, že pokud pracujete v práci, která jakýmkoli způsobem zahrnuje vývoj aplikací (například pokud jste kodér nebo správce systému, který potřebuje provádět revize dat správy konfigurace nebo jen klonovat kód vývojářů ) – používání Git je v dnešní době všeobecně uznávaným systémem pro správu verzí. Pokud nebudete vědět, jak jej používat, pravděpodobně se dostanete do nevýhodné pozice v kariéře.

Git vs Github

Git server  lze nainstalovat na jakýkoli server Linux. Přístup k němu obecně vyžaduje použití klienta git , což je nástroj příkazového řádku. Více o tom v níže uvedené sekci.

Github je široce používaná webová veřejná služba Git, která lidem umožňuje pracovat na projektech přes internet. Není spojen s Linusem Torvaldsem ani s kýmkoli z git projektu, je to webová adaptace git serveru. Využívá všechny hlavní komponenty git a nabízí další rozšiřitelnost prostřednictvím svého webového rozhraní. Hlavní výhodou githubu je, že se jedná o veřejné úložiště git, ke kterému se stále můžete připojit přes obvyklého klienta git. Github také nabízí služby soukromého úložiště, ale ty jsou placené.

K dispozici jsou také další komerční produkty, které implementují některé nebo všechny služby git, jako je Atlassian Bitbucket.

Důležitá terminologie a příkazy

Příkaz git client se zadává na terminálu a má řadu možností. Zjistíte, že git je pravděpodobně již nainstalován na vašem počítači se systémem Linux. Pokud tomu tak není, je jisté, že lze očekávat, že jde pouze o instalaci apt-get nebo yum.

Nejrelevantnější z nich jsou uvedeny níže. Mějte to po ruce, protože se vám bude hodit jako cheat-list když začínáte s Git:

Příkaz Popis
klon

Vytvoří kopii úložiště git.

Například kdykoli stáhnete věci z webu github/git (úložiště), budete používat klon .
např.:git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git

init Inicializuje prázdné úložiště Git v aktuálním adresáři.
např.:git init /home/mycode
stav

Zobrazuje stav úložiště.

Budete to dělat často, abyste mohli sledovat jakékoli změny v úložišti.
např.:git status

přidat

Přidá soubor(y) do pracovní oblasti, aby bylo možné lokálně sledovat změny.

Říká gitu, aby začal sledovat změny pro soubor, který určíte. Upozorňujeme, že tyto změny nepotvrdí větev, je to v místní pracovní oblasti, např.:

git add <filename>

Chcete-li přidat více souborů/adresářů, potřebujete závorky kolem zástupných znaků, takže git získá seznam souborů dříve, než shell se zástupným znakem začne pracovat. Tento příklad přidá každý soubor .jpg do všech adresářů pod aktuálním adresářem (včetně aktuálního adresáře):

git add '*.jpg'

zavázat se

Potvrdit postupnou (přidanou) změnu.

Provést změnu znamená „všechny tyto přidání Udělal jsem, vyjměte je z pracovní oblasti a odevzdejte je do mého úložiště.“ . Je povinné zavázat se zprávou. Zpráva by měla popisovat, k čemu je odevzdání, např. můžete říci, že jste přidali několik jpegů koček.
git commit -m "info about this commit".

dálkové

Nakonfigurujte vzdálené úložiště pro odesílání odevzdání.

Jakékoli změny, které jste provedli lokálně, lze nahrát do vzdáleného úložiště. Github je například vzdálené úložiště. Chcete-li inicializovat připojení ke vzdálenému serveru git, použijte git remote.

Např.: git remote add origin https://github.com/YOUR-USERNAME/your-repository.git

  • Název (nebo popis ) „origin“ se používá jako reference pro vzdálené úložiště projektu. Můžete si to pojmenovat jakkoli chcete, ale je typické, že svůj hlavní pojmenujete jako ‚původ‘.
  • vaše-úložiště.git soubor se vytvoří, když provedete inicializaci git.
tlačit

Přenést potvrzené změny do vzdáleného úložiště.

Jakmile inicializujete své vzdálené úložiště, můžete do něj odeslat potvrzené změny pomocí push:
git push -u origin master

  • „origin“ je název, který jste zadali pro vzdálené připojení.
  • „master“ je větev zvaná hlavní (primární větev. Více o tom za minutu).
  • volba -u říká gitu, aby si zapamatoval vámi zadané parametry, takže příště stačí napsat ‚git push‘.
vytáhnout

Sloučí změny ze vzdáleného úložiště s vaší místní kopií.

Jakmile lidé (nebo vy) potvrdíte více změn v úložišti, chcete odeslat požadavek na stažení změn, které máte lokálně sloučeny s upstreamovým (vzdáleným) úložištěm.

git pull origin master

rozdíl

Ukazuje, jaké rozdíly byly v úložišti od posledního odevzdání.

Když změny provede ve vzdáleném úložišti více než jedna osoba, budou rozdíly mezi tím, co jste uložili lokálně, a tím, co je na vzdáleném serveru. Rozdíly se nazývají rozdíly . Když provedete tah , umožní vám to místní

Chcete-li zobrazit rozdíly mezi vaším posledním odevzdáním a tím, co existuje ve vzdáleném úložišti, můžete použít ukazatel HEAD. HEAD je jednoduše indikátor pozice, ve výchozím nastavení ukazuje na vaše nejvíce nedávné odevzdání.

git diff HEAD

Výstup zobrazí rozdíly mezi vaší kopií jakýchkoli změněných souborů a vzdálenou kopií (sčítání a odečítání).

Chcete-li vidět rozdíly mezi soubory ve fázi (přidat ed) oblast a místní soubory na vašem PC, použijte diff --staged

pokladna

Vrátit se k předchozímu odevzdání nebo přepnout větve.

Řekněme, že jste provedli odevzdání souboru.txt, o kterém jste se rozhodli, že není dobrý, a chcete se vrátit k předchozí potvrzené verzi, vrátili byste to takto:

git checkout -- file.txt

  • — jednoduše říká, že pro operaci pokladny nejsou žádné další možnosti.

Chcete-li změnit větev, zadejte název větve (místo použití — nebo zadání názvu souboru, který chcete vrátit):

git checkout <branchname>

pobočka

Vytvoří novou kopii (větev). Příkaz také odstraní nebo vypíše stávající větve.

Další informace o tom, co je ‚větev‘, naleznete v terminologii níže. Níže uvedený příklad vytvoří novou větev s názvem ‚newbranch‘:

git branch newbranch

Níže uvedený příklad smaže „newbranch ‘:

git branch -d newbranch

rm

Odstraní soubory z aktuální větve i z místního disku.

Chcete-li odstranit všechny soubory, použijte rm stejně jako byste přidali:

git rm '*.txt'

  • Nezapomeňte se zavázat která se změní poté, co vydáte rm!
sloučit

Sloučí jednu větev do druhé.

Jako praktický příklad pokračujte od rm příklad příkazu výše, předpokládejme, že jste provedli rm *.txt z větve newbranch . Pokud byste chtěli tuto změnu sloučit do hlavní nejprve byste se přepnuli zpět na master větev vydáním git checkout master,   poté pomocí příkazu merge sloučit rozdíly z nové větve zpět do aktuální větve (master ). Většina týmů vývojářů bude na svém kódu pracovat v samostatných větvích, než je na konci dne sloučí do hlavní větve.

git merge newbranch

resetovat

Vrátí (odstraní) všechny naplánované změny.

Pokud jste například provedli příkaz git add file.txt, ale poté se před potvrzením rozhodnete, že soubor.txt by neměl být potvrzen, zadejte příkaz reset, např.:git reset soubor.txt

log

Zobrazit deník všech potvrzených změn.

Např.:git log

Terminologie

Některá terminologie, které budete muset porozumět, je:

    • Požadavky na stažení – Když tým pracuje na změnách kódu, požadavek na stažení se používá k signalizaci správci úložiště, aby sloučil novou změnu.
    • Pobočka – Pobočka je jednoduše kopie existujícího úložiště. Ve výchozím nastavení začíná každé úložiště „Master ' větev. Master je název hlavní větve.
      • Hlavní větev obvykle není pracovní větev, často se používá jako větev, když všichni vývojáři dokončili (potvrdili) svůj kód. Poté se do něj na konci dne sloučí z jiných pracovních větví.
    • Fork – Fork je duplicitní kopie něčího úložiště. Umožňuje vám provádět jakékoli změny v kódu, aniž by to ovlivnilo původní projekt/úložiště. Používá se buď k vytvoření nové aplikace z původního kódu, nebo jako pracovní nula, která umožňuje vývojáři navrhnout změny v projektu.
    • Staging – Když je soubor přidán (s git add) říká se, že je inscenován nebo v procesu stagingu. Když změnu potvrdíte, již není zinscenována.
      • Připravování probíhá na vašem místním počítači, nikoli ve vzdáleném úložišti.
      • V praktickém příkladu řekněme, že máte spoustu souborů, které jsou ve vzdáleném úložišti

Viz také

Vestavěná manuálová stránka s názvem ‚gittutorial‘ je dobře napsaný tutoriál, který vás provede spletitami a nevýhodami používání Git. Chcete-li ji zobrazit, zadejte následující příkaz:

man 7 gittutorial

Důrazně doporučujeme následující webové odkazy:

      • Interaktivní výukový program (trygit)
      • Oficiální web
      • web github

Linux
  1. Chroot „vězení“ – co to je a jak jej používat?

  2. Kdy a proč bych měl používat Apt-get Update?

  3. Co je kurátorství obsahu a jak byste to měli dělat?

  1. Co je příkaz Chown v Linuxu a jak jej používat

  2. Co je příkaz cURL a jak jej používat?

  3. Proč by se měl v Bash vyhnout eval a co bych měl místo toho použít?

  1. Co je to chroot jail a jak jej používat?

  2. Linux File Command:Co dělá a jak jej používat

  3. Redis jako mezipaměť:Jak to funguje a proč ji používat