Potpuni vodič o tome kako koristiti GitHub

Jeste li nedavno počeli koristiti Git? Ili ga možda već neko vrijeme upotrebljavate, ali mnoge su njegove misterije i dalje zbunjujuće.

Git je prije svega sustav kontrole verzija i osnovni proizvod u svakom projektu razvoja softvera. Obično služi 2 glavne svrhe: sigurnosna kopija i verzija verzije koda. Na kôdu možete raditi korak po korak, spremajući napredak svakog koraka usput, u slučaju da trebate povratni prikaz do sigurnosne kopije!

Česta je poteškoća što Git može biti lukav za korištenje. Postoje slučajevi u kojima verzije i grane nisu sinkronizirane i trošite ozbiljno vrijeme samo pokušavajući gurnuti svoj kôd! što je još gore, ne znajući kako točno pojedine naredbe mogu lako dovesti do slučajnog brisanja ili prepisivanja bitova koda!

Zbog toga sam vam pripremio ovaj vodič, kako bih vas naučio kako pravilno koristiti git kako bismo svi mogli pristupiti kodiranju!

Instalacija i postavljanje

Instaliranje

Prvo, prvo moramo instalirati git da bismo ga koristili! To možemo brzo i jednostavno koristeći apt:

sudo apt instalirati git-all

Osnovno postavljanje

Ako želite, možete nastaviti i spremiti svoje git korisničko ime i e-poštu kako ih više nećete morati unositi u naredne git naredbe.

git config --global user.name "Korisničko ime"
git config --global user.email "e-pošta"

boje

Uredan trik koji neki ljudi često propuštaju je da možete omogućiti nešto dodatnog bojanja kako bi se lakše čitao izlaz naredbi!

git config --global color.ui true

Osnovna kontrola verzije

Pokretanje gita

Sada možemo započeti s inačicom našeg projekta. Idite naprijed i pomaknite se do direktorija u koji želite postaviti terminal verzije pomoću terminala pomoću standardne naredbe "cd". Sada možete inicijalizirati git spremište kao što je ovo:

git init

Ovo stvara novi poddirektorij pod nazivom .git koji sadrži sve potrebne datoteke spremišta - kostur Git spremišta. U ovom trenutku još ništa ne prati vaš projekt.

Dodavanje i izvršavanje

Da biste pokrenuli verziju kontrole postojećih datoteka, trebali biste započeti praćenjem tih datoteka i izvršiti početnu obvezu. Da biste to postigli, započnite dodavanjem datoteka u git koje biste željeli biti priključeni na vaš git projekt.

git add 
git počiniti -m 'prvi počiniti'

Daljinsko sigurnosno kopiranje

Sjajno! Sada ste započeli lokalnu verziju svog GitHub projekta. Ako želite projekt pohraniti i sigurnosno kopirati na daljinu, morat ćete stvoriti udaljeno skladište na GitHub-u (besplatno je!). Zato prvo prijeđite na github.com i napravite spremište. Zatim upotrijebite vezu spremišta da biste je dodali kao izvor svog lokalnog git projekta, tj. Gdje će taj kod biti pohranjen.

### Opći primjer
git remote add origin \
https://github.com/user/repo.git
### Primjer s mojim spremištem
git remote add origin \
https://github.com/GeorgeSeif/Semantic-Segmentation-Suite.git

Tada možete nastaviti i gurnuti svoj kod na GitHub… violu! Sigurnosno ste stvorili sigurnosnu kopiju!

git push origin master

Rad sa datotekama

Provjera statusa

Glavni alat koji određujete koje su datoteke u kojem su stanju naredba git statusa. Omogućuje vam da vidite koje su vaše datoteke već počinjene, a koje nisu. Ako pokrenete ovu naredbu kada su sve datoteke već počinjene i gurnute, trebali biste vidjeti nešto takvo:

$ git status
# Na glavnom ogranku
ništa za počiniti (radni direktorij čist)

Ako u svoj projekt dodate novu datoteku, a datoteka prije nije postojala, kada pokrenete status $ git, trebala bi se vidjeti vaša neotkrivena datoteka ovako:

$ git status
# Na glavnom ogranku
# Neotkrivene datoteke:
# (koristite "git add  ..." da biste uključili u ono što će biti počinjeno)
#
#   PROČITAJ ME
ništa nije dodano za počinjenje, ali prisutne su i datoteke bez praćenja (za praćenje koristite "git add")

To čini $ git status stvarno korisnim za brzu provjeru onoga što ste već izradili sigurnosno kopiju i onoga što imate samo lokalno.

Napredno dodavanje datoteka

Postoji nekoliko naprednijih načina dodavanja datoteka u Git koji će vaš radni proces učiniti učinkovitijim. Umjesto da tražimo sve datoteke koje imaju promjene i dodajemo ih jednu po jednu, možemo učiniti sljedeće:

### Dodavanje datoteka jedna po jedna
git dodaj naziv datoteke

### Dodavanje svih datoteka u trenutnu mapu
git dodati -A

### Dodavanje promjena datoteka u trenutnoj mapi
git add.

### Odabir promjena koje ćete dodati (ovo će se provesti kroz sve vaše ### izmjene, a izmjene možete označiti sa "Y" ili "N")
git dodati -p

Napredni zapisi

Prije smo vidjeli da možemo založiti datoteku Gitu koristeći $ git commit -m "poruka poruke". To je sve u redu i fino je za kratke poruke o predaji, ali ako želite učiniti nešto složenije, trebat će vam još malo:

### Poštivanje postupnih datoteka
### To se obično koristi za poruke s kraćim počinjenjima
git počiniti -m 'počiniti poruku'

### Dodavanje datoteke i snimanje u jednom kadru
git počiniti naziv datoteke -m 'počiniti poruku'

### Dodajte datoteku i izvršite postupnu datoteku
git počiniti -am 'umetnuti poruku za preuzimanje'

### Promjena najnovije poruke počinjenja
git commit --amend 'nova poruka o obvezi'

# Kombinirajte niz obveza zajedno u jedan
### Ovo možete koristiti za organiziranje neuredne povijesti počinjenja
git rebase -i
### Ovo će vam pružiti sučelje vašeg osnovnog uređivača:
# Naredbe:
# p, pick = koristi počinjenje
# r, reword = koristi počinjenje, ali uredite poruku počinjenja
# e, uredite = upotrijebite počinjenje, ali zaustavite se s izmjenama
# s, squash = upotrebi počinite, ali uklopite se na prethodni počinak
# f, fixup = poput "squash", ali odbacite poruku dnevnika ove obveze
# x, exec = naredba za pokretanje (ostatak retka) koristeći shell

Podružnica i spajanje

Glavna grana vašeg GitHub skladišta uvijek treba sadržavati radni i stabilan kôd. Međutim, možda biste trebali sigurnosno kopirati i neki kôd na kojem trenutno radite, ali nije u potpunosti stabilan. Možda dodajete novu značajku, puno eksperimentirate i kvarite kôd, ali ipak ga želite zadržati dok ne biste spremili svoj napredak!

Branching vam omogućuje rad na zasebnoj kopiji koda bez utjecaja na glavnu granu. Kada prvi put stvorite granu, potpun klon vaše matične grane nastaje pod novim imenom. Tada možete samostalno izmijeniti kôd u ovoj novoj grani, uključujući stvaranje datoteka i slično. Nakon što se nova značajka potpuno integrira i kôd je stabilan, spojite je u glavnu granu!

Grananje

Evo svih stvari koje su vam potrebne za stvaranje i rad na grani:

### Stvorite lokalnu podružnicu na kojoj ćete raditi
git checkout -b naziv podružnice

### Prebacivanje između dvije grane
git checkout branch_1
git checkout branch_2
### Guranje nove lokalne podružnice na udaljeno kao sigurnosno kopiranje
git push -u podrijetlo grana_2

### Brisanje lokalne podružnice - to vam neće omogućiti da izbrišete granu ### koja još nije spojena
git grana -d grana_2

### Brisanje lokalne podružnice - ova će izbrisati granu čak i ako je ### još nije spojena!
git grana -D grana_2

### Pregled svih trenutnih grana spremišta, uključujući lokalne ### lokalne i udaljene grane. Izvrsno je vidjeti ako već imate ### ogranak za određeni dodatak značajki, posebno na većim ### projektima
git grana -a

### Pregledavanje svih grana koje su spojene u vašu trenutnu ### granu, uključujući lokalnu i udaljenu. Izvrsno za vidjeti odakle potječe sav ### kôd!
git grana -a - potopljena

### Pregledavanje svih grana koje nisu spojene u vašu trenutnu ### granu, uključujući lokalnu i udaljenu
git grana -a --no-spojena

### Pregledavanje svih lokalnih ogranaka
git grana

### Pregled svih udaljenih grana
git grana -r

# Povezite matičnu granu u lokalnu podružnicu
$ git podrijetlo rebase / master

# Guranje lokalne grane nakon puštanja glavnog u lokalni ogranak
$ git push origin + naziv podružnice

stapanje

Sjajno! Sada ste naučili kako stvoriti podružnicu i raditi s tim kodom! Nakon što dodate novu značajku u svoju podružnicu, morat ćete je ponovo spojiti u matičnu granu, tako da vaš majstor ima sve najnovije značajke koda.

Evo kako to učiniti:

### Prvo provjerite gledate li glavnu granu
git checkout master

### Sada spojite svoju podružnicu da nadzire
git spajanje grana_2

To je to! možda ćete morati popraviti bilo kakve sukobe kodova između vaše podružnice i master-a, ali Git će vam pokazati kako to raditi nakon što upišete naredbu spajanja.

Ispravljanje pogrešaka i povratak unazad

Pogreške se događaju…. a događaju se često kodiranjem! Važno je da smo u mogućnosti popraviti ih.

Nemajte straha ovdje! Git ima sve što vam je potrebno u slučaju da pogriješite s kôdom koji gurate, prepisujete nešto ili samo želite ispraviti nešto što ste pritisnuli.

### Prijeđite na verziju koda najnovije odrednice
git resetiraj GLAVU
git reset HEAD - naziv datoteke # za određenu datoteku
### Prebacite se na verziju koda prije najnovijeg uvrštavanja
git resetiraj HEAD ^ - naziv datoteke
git resetiraj HEAD ^ - naziv datoteke # za određenu datoteku
### Prijeđite natrag 3 ili 5 znakova
git reset HEAD ~ 3 - naziv datoteke
git reset HEAD ~ 3 - naziv datoteke # za određenu datoteku
git reset HEAD ~ 5 - naziv datoteke
git reset HEAD ~ 5 - naziv datoteke # za određenu datoteku
### Vratite se na određenu odredbu
### Gdje je "0766c053" ID obveze
git reset 0766c053 - naziv datoteke
git reset 0766c053 - naziv datoteke # za određenu datoteku
### Prethodne naredbe bile su poznate kao "soft" resetiranja. Vaš ### kôd je resetiran, ali git će i dalje zadržati kopiju drugog koda ### u ruci u slučaju da vam zatreba. S druge strane, --hard zastava ### poručuje Gitu da prebriše sve promjene u radnoj mapi.
git reset --hard 0766c053

Korisni savjeti i trikovi za Git

Svi smo gotovi s griznim griznim stvarima! Evo još nekoliko Git-ovih savjeta i trikova koji će vam biti korisni za poboljšanje tijeka rada!

Pretraživanje

### Pretražuje dijelove žice u direktoriju
git grep 'nešto'

### Pretražuje dijelove žice u direktoriju i -n ispisuje ### brojeve linija u kojima je git pronašao podudaranja
git grep -n 'nešto'

### Pretražuje dijelove niza s nekim kontekstom (neki redovi
### prije, a neki nakon 'nečega' što smo tražili)
git grep -C  'nešto'

### Pretražuje dijelove niza i također pokazuje retke PRIJE njega
git grep -B  'nešto'

### Pretražuje dijelove niza i također pokazuje linije NAKON njega
git grep -A  'nešto'

Vidjevši tko je što napisao

### Prikaži povijest izmjena datoteke s imenom autora
git krivi "ime datoteke"

### Prikaži povijest promjene datoteke s imenom autora ### i ID-om git počinjenja
git kriviti 'ime datoteke' -l

sječa drveta

### Prikažite popis svih stavki u spremištu. Ova naredba prikazuje ### sve o počinjeni odredbi, kao što su ID počinjenja, autor, datum i ### poruka počinjenja.
git log

### Popis stavki koje prikazuju samo poruke i promjene
git log -p

### Popis obveza s određenim nizom koji tražite
git log -S 'nešto'

### Popis autorskih djela
git log --author 'Ime autora'

### Prikaži sažetak popisa stavki u skladištu. Ovaj ### prikazuje kraću verziju ID-a obveze i poruke počinjenja.
git log - jedna linija

### Prikažite popis obveza u spremištu od jučer
git log --since = jučer

### Prikazuje zapisnik autora i traži određeni izraz unutar poruke ### počinjenja
git log --grep "pojam" --author "name"

Preporučeno čitanje

Pokušavate probiti posao programiranja ili želite nadograditi svoj trenutni? Kreiranje Coding Intervjua ima najbolje primjere uobičajenih pitanja o intervjuu za kodiranje i njihova rješenja za tvrtke poput Googlea, Microsofta i Amazona!

I samo gore do glave, podržavam ovaj blog s Amazonovim partnerskim vezama do sjajnih knjiga, jer dijeljenje sjajnih knjiga pomaže svima! Kao Amazon suradnik zarađujem kvalificiranim kupnjama.