Kompletný návod, ako používať GitHub

Začali ste nedávno používať Git? Alebo možno ste ho už nejaký čas používali, ale jeho tajomstvo je stále mätúce.

Git je primárne systém riadenia verzií a základ v každom projekte vývoja softvéru. Zvyčajne slúži na dva hlavné účely: zálohovanie kódu a vytváranie verzií kódu. Na svojom kóde môžete postupovať krok za krokom a v prípade, že potrebujete obnoviť záložnú kópiu, ušetríte tak pokrok každého kroku!

Bežným problémom je, že použitie Gitu môže byť zložité. Sú situácie, keď verzie a vetvy nie sú synchronizované a trávite vážny čas skúšaním kódu! ešte horšie, nevediac, ako presne fungujú určité príkazy, by mohlo ľahko viesť k náhodnému vymazaniu alebo prepísaniu bitov kódu!

Preto som pripravil tento tutoriál, aby som vás naučil, ako správne používať git, aby sme sa všetci mohli pustiť do kódovania!

Inštalácia a nastavenie

inštalácia

Prvá vec je prvá, musíme ju nainštalovať git, aby sme ju mohli používať! Môžeme to urobiť rýchlo a ľahko pomocou apt:

sudo apt nainštalujte git-all

Základné nastavenie

Ak chcete, môžete pokračovať a uložiť svoje používateľské meno a e-mail git, aby ste ich nemuseli znova zadávať pri budúcich príkazoch git.

git config --global user.name "Meno používateľa"
git config --global user.email "email"

farby

Úhľadný trik, ktorý niektorým ľuďom často chýba, spočíva v tom, že môžete povoliť ďalšie zafarbenie, aby ste si mohli ľahšie prečítať výstup príkazov!

git config --global color.ui true

Základné riadenie verzií

Inicializácia gitu

Teraz môžeme začať s verziou nášho projektu. Choďte do toho a prejdite do adresára, pre ktorý chcete nastaviť riadenie verzií v termináli pomocou štandardného príkazu „cd“. Teraz môžete inicializovať úložisko git takto:

git init

Vytvorí sa nový podadresár s názvom .git, ktorý obsahuje všetky potrebné súbory úložiska - kostru úložiska Git. V tomto momente sa vo vašom projekte zatiaľ nesleduje nič.

Pridávanie a odovzdávanie

Ak chcete spustiť správu existujúcich verzií, mali by ste začať sledovaním týchto súborov a vykonať počiatočné potvrdenie. Aby ste to dosiahli, začnete pridaním súborov do súboru git, ktorý chcete pripojiť k vášmu projektu git.

git add 
git commit -m 'first commit'

Vzdialené zálohovanie

Skvelé! Teraz ste začali lokalizovať svoj projekt GitHub na miestnej úrovni. Ak by ste chceli svoj projekt vzdialene uložiť a zálohovať, musíte na serveri GitHub vytvoriť vzdialené úložisko (je to zadarmo!). Takže najskôr choďte na github.com a vytvorte úložisko. Potom pomocou odkazu úložiska ho pridajte ako pôvod vášho miestneho projektu git, t. J. Kde sa tento kód uloží.

### Všeobecný príklad
git vzdialené pridanie pôvodu \
https://github.com/user/repo.git
### Príklad s mojím úložiskom
git vzdialené pridanie pôvodu \
https://github.com/GeorgeSeif/Semantic-Segmentation-Suite.git

Potom môžete pokračovať a poslať kód na GitHub ... violu! Zálohovali ste svoj kód!

git push origin master

Práca so súbormi

Kontrola stavu

Hlavným nástrojom, ktorý použijete na určenie súborov, v ktorých sa nachádza, je príkaz git status. Umožní vám zistiť, ktoré z vašich súborov už boli spáchané a ktoré nie. Ak spustíte tento príkaz, keď už boli všetky súbory potvrdené a odoslané, mali by ste vidieť niečo také:

$ git status
# Na pobočke majstra
nedá sa nič zaviazať (pracovný adresár čistý)

Ak do projektu pridáte nový súbor a tento súbor predtým neexistoval, pri spustení stavu $ git by ste mali vidieť svoj nevysledovaný súbor takto:

$ git status
# Na pobočke majstra
# Nesledované súbory:
# (použite "git add  ...", aby ste zahrnuli to, čo bude prijaté)
#
#   PREČÍTAJ MA
nič nepridané na odovzdanie, ale nie sú sledované súbory (na sledovanie použite príkaz git add)

Vďaka tomu je stav $ git skutočne užitočný na rýchlu kontrolu toho, čo ste už zálohovali a čo máte iba lokálne.

Rozšírené pridávanie súborov

Existuje niekoľko pokročilejších spôsobov pridávania súborov do Gitu, vďaka ktorým bude váš pracovný tok efektívnejší. Namiesto toho, aby sme sa snažili vyhľadávať všetky súbory, ktoré majú zmeny, a pridávať ich jeden po druhom, môžeme urobiť nasledujúce:

### Pridávanie súborov jeden po druhom
pridať názov súboru

### Pridanie všetkých súborov v aktuálnom adresári
git add -A

### Pridanie všetkých zmien súborov do aktuálneho adresára
git add.

### Výber toho, ktoré zmeny sa majú pridať (toto prejde všetkými vašimi ### zmenami a zmeny môžete vykonať „Y“ alebo „N“)
git add -p

Pokročilé prísľuby

Predtým sme videli, že by sme mohli súbor Git zaviazať pomocou $ git commit -m „odovzdať správu“. To je všetko v poriadku pre správy s krátkym odovzdaním, ale ak chcete urobiť niečo prepracovanejšie, budete potrebovať trochu viac:

### Potvrdiť odstupňované súbory
### Zvyčajne sa používa pre správy s kratším potvrdením
git commit -m 'odovzdať správu'

### Pridajte súbor a potvrďte naraz
git commit filename -m 'commit message'

### Pridajte súbor a potvrďte postupný súbor
git commit -am 'vložiť správu o potvrdení'

### Zmena poslednej správy o odovzdaní
git commit - zmena „novej správy o odovzdaní“

# Skombinujte postupnosť odovzdaní do jedného
### Môžete to použiť na usporiadanie chaotickej histórie zmien
git rebase -i
### Takto získate rozhranie vo vašom hlavnom editore:
# Príkazy:
# p, pick = use commit
# r, reword = use commit, ale upravte správu potvrdenia
# e, edit = use commit, ale zastavte pre zmeny
# s, squash = use commit, ale spája sa s predchádzajúcim commitom
# f, fixup = ako "squash", ale zahoďte túto správu do denníka
# x, exec = run príkaz (zvyšok riadku) pomocou shellu

Vetvenie a zlúčenie

Hlavná vetva vášho úložiska GitHub by mala vždy obsahovať funkčný a stabilný kód. Možno budete chcieť zálohovať aj niektoré kódy, na ktorých v súčasnosti pracujete, ale nie sú úplne stabilné. Možno pridávate novú funkciu, veľa experimentujete a porušujete kód, ale napriek tomu si chcete zachovať zálohu, aby ste si uložili pokrok!

Vetvenie umožňuje pracovať na samostatnej kópii kódu bez ovplyvnenia hlavnej vetvy. Pri prvom vytvorení vetvy sa pod novým menom vytvorí úplný klon hlavnej vetvy. Potom môžete kód v tejto novej vetve upravovať nezávisle, vrátane odovzdávania súborov a podobne. Akonáhle je nová funkcia plne integrovaná a kód je stabilný, zlúčite ho do hlavnej vetvy!

vetvenia

Tu je všetko, čo musíte vytvoriť a pracovať na vetve:

### Vytvorte miestnu pobočku, na ktorej budete pracovať
git checkout -b branchname

### Prepínanie medzi 2 pobočkami
git checkout branch_1
git checkout branch_2
### Presunutím novej miestnej pobočky do vzdialenej polohy ako zálohy
git push -u pôvod pobočka_2

### Odstránenie miestnej vetvy - nedovolí vám odstrániť vetvu ###, ktorá ešte nebola zlúčená
git branch -d branch_2

### Odstránenie miestnej vetvy - táto vetva odstráni vetvu, aj keď ešte nebola zlúčená ###!
vetva git -D vetva_2

### Prezeranie všetkých súčasných vetiev úložiska, vrátane miestnych aj vzdialených vetiev ###. Je skvelé zistiť, či už máte pobočku ### pre pridanie konkrétnej funkcie, najmä na väčšie ### projekty
git vetva -a

### Prezeranie všetkých vetiev, ktoré boli zlúčené do vašej aktuálnej vetvy ###, vrátane miestnych a vzdialených. Skvelé na zistenie, odkiaľ pochádza všetok váš kód ###!
vetva git -a - fúzovaná

### Zobrazenie všetkých vetiev, ktoré neboli zlúčené do vašej aktuálnej vetvy ###, vrátane miestnych a vzdialených
git branch -a --no-merged

### Prezeranie všetkých miestnych pobočiek
git vetva

### Prezeranie všetkých vzdialených pobočiek
git branch -r

# Premenujte hlavnú vetvu na miestnu vetvu
$ git rebase pôvod / majster

# Zatlačenie miestnej pobočky po rebasingu majstra do miestnej pobočky
$ git push origin + vetva

zlúčenie

Skvelé! Teraz ste sa naučili, ako vytvoriť pobočku a pracovať s týmto kódom! Po dokončení pridávania novej funkcie do svojej vetvy ju budete chcieť zlúčiť späť do hlavnej vetvy, aby mal hlavný vlastník všetky najnovšie funkcie kódu.

Postupujte takto:

### Najprv sa uistite, že sa pozeráte na hlavnú vetvu
git checkout master

### Teraz zlúčte svoju vetvu s pánom
git zlúčiť pobočku_2

To je všetko! možno budete musieť opraviť akékoľvek konflikty kódu medzi vetvou a masterom, ale Git vám ukáže, ako to všetko urobiť po zadaní príkazu na zlúčenie.

Oprava chýb a spätného sledovania

Stávajú sa chyby ... a vyskytujú sa často pri kódovaní! Dôležité je, že ich dokážeme napraviť.

Nemajte strach! Git má všetko, čo potrebujete pre prípad, že sa pomýlite s kódom, ktorý tlačíte, prepíšete niečo, alebo ak chcete niečo, čo ste tlačili, opraviť.

### Prepnutie na verziu kódu posledného potvrdenia
git reset HEAD
git reset HEAD - filename # pre konkrétny súbor
### Prepnite na verziu kódu pred posledným potvrdením
git reset HEAD ^ - názov súboru
git reset HEAD ^ - filename # pre konkrétny súbor
### Prepnite späť 3 alebo 5 potvrdení
git reset HEAD ~ 3 - názov súboru
git reset HEAD ~ 3 - filename # pre konkrétny súbor
git reset HEAD ~ 5 - názov súboru
git reset HEAD ~ 5 - filename # pre konkrétny súbor
### Prepnúť späť na konkrétny záväzok
### Kde '0766c053' je ID potvrdenia
git reset 0766c053 - názov súboru
git reset 0766c053 - názov súboru # pre konkrétny súbor
### Predchádzajúce príkazy boli tzv. „Mäkké“ resetovania. Váš kód ### sa vynuluje, ale program git si bude stále uchovávať kópiu druhého kódu ### pre prípad, že ho budete potrebovať. Na druhej strane príznak --hard ### hovorí spoločnosti Git, aby prepísala všetky zmeny v pracovnom adresári.
git reset --hard 0766c053

Užitočné tipy a triky pre Git

Všetci sme hotoví s dusnými šupinatými vecami! Tu je niekoľko ďalších tipov a trikov spoločnosti Git, ktoré vám môžu pomôcť pri zlepšovaní vášho pracovného postupu!

vyhľadávanie

### Vyhľadá časti reťazcov v adresári
git grep 'niečo'

### Vyhľadá časti reťazcov v adresári a -n vytlačí ### z čísel riadkov, kde git našiel zhody.
git grep -n 'niečo'

### Vyhľadáva časti reťazca s určitým kontextom (niektoré riadky
### pred a niektoré po „niečom, čo hľadáme“)
git grep -C  „niečo“

### Vyhľadá časti reťazca a pred tým zobrazí aj riadky
git grep -B  'niečo'

### Vyhľadá časti reťazca a po ňom zobrazí aj riadky
git grep -A  'niečo'

Vidieť, kto čo napísal

### Zobraziť históriu zmien súboru s menom autora
git vinu 'filename'

### Zobraziť históriu zmien súboru s menom autora ### a ID potvrdenia git
git vinu 'filename' -l

protokolovanie

### Zobraziť zoznam všetkých potvrdení v úložisku. Tento príkaz zobrazuje ### všetko o potvrdení, ako napríklad ID potvrdenia, autor, dátum a správa o potvrdení ###.
git log

### Zoznam potvrdení, ktoré zobrazujú iba správy o potvrdení a zmeny
git log -p

### Zoznam potvrdení s konkrétnym reťazcom, ktorý hľadáte
git log -S 'niečo'

### Zoznam záväzkov od autora
git log - autor 'Meno autora'

### Zobraziť zhrnutie zoznamu potvrdení v úložisku. Tento ### zobrazuje kratšiu verziu ID potvrdenia a správy o potvrdení.
git log - online

### Zobraziť zoznam potvrdení v úložisku od včerajška
git log --since = včera

### Zobrazuje denník od autora a hľadá konkrétny výraz v správe ### commit
git log --grep "term" --autor "name"

Odporúčané čítanie

Pokúšate sa preniknúť do programovacej úlohy alebo hľadať upgrade svojej súčasnej? Rozlúsknutie rozhovoru s kódovaním má najlepšie príklady bežných otázok týkajúcich sa rozhovorov s kódmi a ich riešení pre spoločnosti ako Google, Microsoft a Amazon!

A len heads up, podporujem tento blog s pridruženými odkazmi Amazonu na skvelé knihy, pretože zdieľanie skvelých kníh pomáha všetkým! Ako spolupracovník Amazonu zarobím z kvalifikovaných nákupov.