Manuál Git: Ako zostať s tímom v pokoji

Ilustrácie neusporiadaného tímu Zdroj: Spongebob Squarepants

Git je tvrdý, skrutkovanie je ľahké. Existuje veľa vecí, ktoré by ste mali vedieť, ako efektívne používať git s tímom. Našťastie ste tu, ukážem vám návod na git, ktorý vám pomôže pracovať v tíme.

Čo je to git?

Git je bezplatný a otvorený zdrojový distribuovaný systém riadenia verzií (DVCS) na sledovanie zmien v zdrojovom kóde počas vývoja softvéru. Git je navrhnutý tak, aby zvládal všetko od malých až po veľmi veľké projekty s rýchlosťou a efektívnosťou.

Základné príkazy

Ukážem vám niekoľko základných príkazov v gite, ktoré vám pomôžu prispieť k vášmu tímu.

git init

Ak chcete vytvoriť nové lokálne úložisko, môžete vykonať:

git init

Potom máte čerstvé a úplne nové úložisko. Odtiaľ môžete začať pracovať vo svojom novom úložisku.

git klon

Ste v vývojovom tíme a projekt už realizuje vedúci vášho tímu v GitHub alebo GitLab. Teraz chcete prispieť svojou prácou v počítači. Klonovanie git môžete jednoducho použiť na vytvorenie klonovania úložiska v miestnych súboroch, ako je tento:

git klon 

git vetva

Po klonovaní vášho online úložiska do miestneho úložiska nemôžete okamžite začať kódovať. Musíte si vytvoriť svoju vlastnú pobočku, aby sa neusporiadala s konečným produktom vášho úložiska. Príkaz git branch má niekoľko možností:

git vetva

Zoznam všetkých pobočiek vo vašom úložisku. Toto je synonymom pre git branch --list.

git vetva 

Vytvorte novú vetvu s názvom , Nová pobočka sa tým nezaškrtne.

git branch -d 

Odstráňte zadanú vetvu. Jedná sa o „bezpečnú“ operáciu, pri ktorej Git zabráni vymazaniu vetvy, ak dôjde k neoddeleným zmenám.

git vetva -D 

Vynútiť odstránenie zadanej vetvy, a to aj v prípade, že došlo k neoddeleným zmenám. Toto je príkaz, ktorý sa má použiť, ak chcete natrvalo vyhodiť všetky záväzky spojené s konkrétnou vývojovou líniou.

git branch -m 

Premenujte aktuálnu vetvu na ,

git vetva -a

Zoznam všetkých vzdialených pobočiek.

git pokladňa

Po vytvorení vlastnej pobočky. Chcete navigovať z vašej aktuálnej vetvy (predvolená je master) do vetvy pomocou príkazu git checkout. Vyhlásením vetvy sa aktualizujú súbory v pracovnom adresári, aby sa zhodovali s verziou uloženou v tejto vetve, a povie to spoločnosti Git, aby zaznamenala všetky nové potvrdenia v tejto vetve. Premýšľajte o tom ako o spôsobe, na ktorom riadku rozvoja pracujete.

Prepínanie vetiev je jednoduchá operácia. Vykonanie nasledujúceho bodu nasmeruje HEAD na špičku ,

git pokladňa 

Pri spolupráci s tímom je bežné využívať vzdialené archívy. Tieto archívy môžu byť hostené a zdieľané alebo môžu byť kópiou iného kolegu. Každé vzdialené úložisko bude obsahovať svoju vlastnú množinu vetiev. Ak chcete skontrolovať vzdialenú vetvu, musíte najprv načítať obsah vetvy.

git fetch --all

V moderných verziách Git môžete potom pokladať vzdialenú pobočku ako miestnu pobočku.

git pokladňa 

Okrem toho môžete skontrolovať novú miestnu vetvu a resetovať ju na posledné vetvy vzdialených pobočiek.

git checkout -b git reset - pôvod /

git remote

Stačí povedať, že chcete svoj tímový projekt naklonovať do svojho vlastného online úložiska. Po vytvorení vlastného úložiska na GitHub alebo GitLab chcete presunúť svoje lokálne úložisko vášho projektového tímu do svojho vlastného online úložiska. Ak chcete skontrolovať svoje pripojenie, môžete použiť tieto príkazy:

git remote

Uveďte zoznam vzdialených pripojení k iným úložiskám.

git remote -v

Rovnaké ako vyššie uvedený príkaz, ale zahrňte adresu URL každého pripojenia.

Teraz chcete prepojiť svoje lokálne úložisko s vlastným online úložiskom pomocou týchto príkazov:

git remote add 

Vytvorte nové pripojenie k vzdialenému úložisku. Po pridaní diaľkového ovládača ho budete môcť používať ako praktická skratka pre v iných príkazoch Git.

git remote rm 

Odstráňte pripojenie k volanému vzdialenému úložisku ,

git vzdialené premenovanie 

Premenujte vzdialené pripojenie z na ,

git pull

Ak je v online úložisku aktualizácia vo vetve, na ktorej práve pracujete, môžete aktualizovať miestne úložisko jednoducho pomocou príkazu git pull. Môj predvolený spôsob, ako vytiahnuť z online úložiska, je pomocou git pull ale príkaz git pull má niekoľko možností:

git pull

Načítať kópiu aktuálnej vetvy zadaného diaľkového ovládača a okamžite ju zlúčiť do lokálnej kópie. Toto je to isté ako git fetch nasledovaný pôvodom zlúčenia git / ,

git pull - no-commit

Podobne ako predvolené vyvolanie, načíta vzdialený obsah, ale nevytvorí nové zlúčenie.

git pull --rebase

Rovnaké ako v predchádzajúcom ťahu Namiesto použitia zlúčenia git na integráciu vzdialenej vetvy s lokálnou vetvou použite git rebase.

git pull - verbose

Poskytuje podrobný výstup počas ťahu, ktorý zobrazuje sťahovaný obsah a podrobnosti zlúčenia.

git push

Po vykonaní zmien v lokálnom úložisku bez ohľadu na to, aký malý je dopad na súbory. Použite git push na „tlačenie“ vašich zmien v lokálnom úložisku do online úložiska. Môj predvolený spôsob, ako tlačiť do online úložiska, je pomocou git push ale príkaz git push obsahuje niekoľko možností:

git push

Zatlačte zadanú vetvu na , spolu so všetkými potrebnými záväzkami a vnútornými objektmi. Takto sa vytvorí miestna pobočka v cieľovom úložisku. Aby ste zabránili prepísaniu potvrdení, Git vás nenechá tlačiť, keď dôjde k rýchlemu zlúčeniu cieľového archívu.

git push - force

Rovnaké ako v prípade vyššie uvedeného príkazu, ale vynútite tlačenie, aj keď to má za následok zlučovanie rýchlo a rýchlo. Nepoužívajte príznak --force, pokiaľ si nie ste úplne istí, že viete, čo robíte.

git push --all

Zatlačte všetky svoje miestne pobočky na určené diaľkové ovládanie.

git push - značky

Značky sa automaticky nestlačia, keď stlačíte vetvu alebo použijete voľbu --all. Vlajka --tags odošle všetky vaše miestne značky do vzdialeného úložiska.

spojiť git

Po vytlačení vašej práce do online pobočky úložiska. Teraz povedzte, že chcete zlúčiť svoju zmenu s konečným produktom, povedzme v hlavnej vetve, ale hlavná vetva sama je už aktualizovaná, pretože ostatní vývojári vo vašom tíme zlúčili svoju vetvu s hlavnou vetvou.

Pred zlúčením Zdroj: Atlassian

Ak nezmenia kód na rovnakých riadkoch ako vaša práca, môžete jednoducho zlúčiť svoju vetvu bez konfliktu pomocou príkazu zlúčiť.

git checkout master git zlúčiť git branch -d
Po zlúčení Zdroj: Atlassian

Najlepším postupom po zlúčení vašej pobočky je bezpečné ju odstrániť.

V inom prípade, ak je ich kód na rovnakých riadkoch ako váš kód a kódy sú odlišné, stretnete sa s konfliktom zlúčenia. Konflikt musíte vyriešiť skôr, ako znova zlúčite svoju pobočku.

git rebase

Ako alternatívu k zlúčeniu môžete vetvenie funkcií presmerovať na hlavnú vetvu pomocou nasledujúcich príkazov:

funkcia git checkout master git rebase master

Tým sa presunie celá vetva funkcií tak, aby sa začala na špičke hlavnej vetvy, a efektívne tak zahrnie všetky nové potvrdenia v hlavnej jednotke. Namiesto použitia zlúčeného odovzdania však rebasing prepisuje históriu projektu vytvorením úplne nových potvrdení pre každé odovzdanie v pôvodnej vetve.

Pri zlúčení vytvorte novú vetvu potvrdenia o zlúčení, ako je táto:

Zlúčiť predlohu s vetvou funkcie Zdroj: Atlassian

Rebase presunie všetky potvrdenia vo vetve funkcií na posledný potvrdenia hlavnej vetvy ako úplne nové potvrdenia

Zmeňte hlavný vzor na vetvu funkcie Zdroj: Atlassian

Hlavnou výhodou rebasingu je to, že získate omnoho čistejšiu históriu projektu. Po prvé, eliminuje nepotrebné zlúčenia, ktoré vyžaduje zlúčenie git. Po druhé, ako vidíte na vyššie uvedenom diagrame, rebasovanie tiež vedie k dokonale lineárnej histórii projektu - môžete sledovať špičku funkcie až po začiatok projektu bez vidličiek.

git vrátiť

Vrátenie späť zruší odovzdanie vytvorením nového potvrdenia. Je to bezpečný spôsob, ako vrátiť späť zmeny, pretože nemá šancu prepísať históriu zmien. V jednom z mnohých prípadov, ak vaša funkcia obsahuje chybu v konečnom produkte (v hlavnej vetve), musíte okamžite urobiť rýchlu opravu. V tejto situácii môžete použiť vrátenie git.

Napríklad nasledujúci príkaz zistí zmeny obsiahnuté v 2. až poslednom záväzku, vytvorí nový záväzok, ktorý tieto zmeny zruší, a nový príkaz prenesie na existujúci projekt.

git checkout rýchla git revert HEAD ~ 2

Možno to znázorniť takto:

Pred návratom Zdroj: AtlassianPo návrate Zdroj: Atlassian

Príkaz git revert je operácia späť vpred, ktorá ponúka bezpečný spôsob vrátenia zmien. Namiesto odstránenia alebo osirelenia potvrdenia v histórii odovzdania, vrátenie vytvorí nové odovzdanie, ktoré invertuje zadané zmeny. Návrat gitov je bezpečnejšou alternatívou k resetovaniu gitov v súvislosti so stratou práce.

git skrýšiť

git dočasné uloženie zmien (alebo skrývanie) zmien, ktoré ste urobili vo svojej pracovnej kópii, aby ste mohli pracovať na niečom inom, a potom sa vráťte a neskôr ich znova použite. Skrytie je užitočné, ak potrebujete rýchlo prepnúť kontext a pracovať na niečom inom, ale ste v polovici procesu zmeny kódu a nie ste úplne pripravení sa zaviazať.

Príkaz git stash prevezme vaše nezúčastnené zmeny (usporiadané aj nezastúpené), uloží ich na neskoršie použitie a potom ich vráti z vašej pracovnej kópie. Napríklad:

$ git status On branch master Zmeny, ktoré sa majú vykonať: nový súbor: style.css Zmeny nie sú naplánované pre commit: zmenené: index.html $ git stash Uložený pracovný adresár a stav indexu WIP na master: 5002d47 naša nová domovská stránka HEAD je teraz na 5002d47 naša nová domovská stránka $ git status Na vetve majstra nič, čo by sa malo dopustiť, pracovný strom čistý

V tomto okamihu môžete vykonávať zmeny, vytvárať nové potvrdenia, prepínať vetvy a vykonávať akékoľvek ďalšie operácie Git; potom sa vráťte a znova použite svoju skrýšu, keď budete pripravení. Pamätajte, že úložisko je lokálne vo vašom úložisku Git; Po stlačení sa skrinky neprenesú na server.

Predchádzajúce skryté zmeny môžete znova použiť pomocou git skrýša pop:

$ git status Na vetve master nič, čo by sa malo zaviazať, pracovný strom čistý $ git stash pop Na vetve vetvy Zmeny, ktoré sa majú vykonať:
 nový súbor: style.css
Zmeny nie sú uvedené pre odovzdanie:
 upravené: index.html
Zrušené referencie / skrýša @ {0} (32b3aa1d185dfe6d57b3c3cc3b32cbf3e380cc6a)

Vyskakovanie skrýša odstráni zmeny z skrýša a znova ich vloží do vašej pracovnej kópie.

Prípadne môžete znova použiť zmeny vo vašej pracovnej kópii a ponechať ich vo svojom skrýši s použitím git skrýša:

$ git stash platí Na kmeňovej vetve Zmeny, ktoré sa majú vykonať:
 nový súbor: style.css
Zmeny nie sú uvedené pre odovzdanie:
 upravené: index.html

Toto je užitočné, ak chcete použiť rovnaké uložené zmeny na viac vetiev.

Teraz, keď poznáte základy ukladania údajov, je tu jedna výzva, v ktorej je potrebné si uvedomiť, že: Git v predvolenom nastavení nebude ukladať zmeny vykonané v neodstránených alebo ignorovaných súboroch.

záverečný

Dúfam, že tento článok vám dal viac znalostí, aby ste pochopili Git a ako zlepšiť svoju tímovú prácu v projektoch. Uvidíme sa v ďalšom článku! Vďaka za prečítanie!

Dodatočné zdroje

  • Atlassian | Príručky Git