Õppige põhitõdesid alla 10 minuti jooksul

Jah, pealkiri on kliki sööt. Te ei saa kuidagi mõista git-tehnoloogia põhitõdesid vaid 10 minutiga. Kuid umbes 25 minutiga saate üsna lähedale. Ja see on selle artikli eesmärk.

Kui soovite alustada Giti tehnoloogia õppimist, olete jõudnud õigesse kohta. See on põhjalik Giti juhend algajatele. Giti jaoks on palju kliente. Tehnoloogia on kliendist olenemata kõik ühesugune. Kuid selles juhendis kasutame Giti mõistmiseks GitHubi.

Alustame!

Mis on versioonihaldus?

Versioonihaldus on süsteem, mis salvestab aja jooksul faili või failikomplekti muudatused, et saaksite konkreetseid versioone hiljem meelde tuletada. Nii et ideaaljuhul võime arvutisse kõik failid paigutada versioonihaldusele.

Umm ... Okei ... Aga miks just Sina?

Siit miks:

Versioonijuhtimissüsteem (VCS) võimaldab teil taastada failid eelmisse olekusse, kogu projekti tagasi eelmisesse olekusse, vaadata üle aja jooksul tehtud muudatused, vaadata, kes viimati muutis midagi, mis võib põhjustada probleemi, kes tutvustas probleemi ja millal ja veel. VCS-i kasutamine tähendab ka seda, et kui te asjad kokku keerate või failid kaotate, saate üldiselt lihtsalt taastada. Ja mõnikord tahate lihtsalt teada, kes selle jama kirjutas , ja sellele teabele juurdepääs on väärt?

Mis on Git?

Git on versioonikontrollisüsteem arvutifailide muutuste jälgimiseks ja nende failide töö koordineerimiseks mitme inimese vahel. Git on hajutatud versioonide juhtimissüsteem . Seega ei pea Git projekti failide kõigi versioonide salvestamiseks tingimata tuginema keskserverile. Selle asemel "kloonib" iga kasutaja hoidla koopia (failide kogu) ja tema kogu projekti ajalugu on oma kõvakettal. Sellel kloonil on kõik originaali metaandmed, samas kui originaal ise on salvestatud ise hostitud serverisse või kolmanda osapoole hostimisteenusesse nagu GitHub.

Git aitab teil jälgida oma koodi muudatusi. Põhimõtteliselt on see koodiredaktori vahekaart ajalugu (ilma inkognito režiimita?). Kui tabate kodeerimise ajal surmaga lõppenud viga ja ei tea, mis seda põhjustab, saate alati naasta stabiilsesse olekusse. Nii et see on silumiseks väga kasulik. Või näete lihtsalt, milliseid muudatusi oma koodis aja jooksul tegite.

Ülaltoodud näites esindavad kõik kolm kaarti sama faili erinevaid versioone. Saame igal ajal valida, millist failiversiooni soovime kasutada. Nii et saan hüpata faili mis tahes versiooni juurde git-ajapidevuses.

Git aitab teil koodi sünkroonida ka mitme inimese vahel. Kujutage ette, et teie ja teie sõber teevad projekti juures koostööd. Töötate mõlemad samade projektifailidega. Nüüd võtab Git teie ja teie sõbra tehtud muudatused iseseisvalt kokku ja ühendab need ühtseks " Master " hoidlasse. Nii saate Giti abil tagada, et töötate mõlemad hoidla uusima versiooni kallal. Nii et te ei pea muretsema oma failide üksteisele saatmise ja algse faili naeruväärse hulga koopiatega töötamise pärast. Ja pikamaa-alane koostöö muutub sama lihtsaks kui HTML?

Giti töövoog:

Enne kui hakkame Git-käskudega töötama, peate mõistma, mida see esindab.

Mis on hoidla?

Hoidla aka repo on vaid kogumine lähtekoodi.

Giti töövoos on neli põhielementi.

Working Directory , Lähtealal , kohaliku hoidla ja Kaughoidla .

Kui kaalute faili oma töökataloogis, võib see olla kolmes võimalikus olekus.

  1. Seda saab lavastada. Mis tähendab, et värskendatud muudatustega failid on märgitud kohalikule hoidlale siduvaks, kuid veel kinnitamata.
  2. Seda saab muuta . Mis tähendab, et värskendatud muudatustega faile pole veel kohalikku hoidlasse salvestatud.
  3. Seda saab pühenduda . Mis tähendab, et failis tehtud muudatused salvestatakse turvaliselt kohalikku hoidlasse.
  • git add on käsk, mida kasutatakse töökaustas oleva faili lisamiseks lavastusalale.
  • git commit on käsk, mida kasutatakse kõigi etapiviisiliste failide lisamiseks kohalikku hoidlasse.
  • git pushon käsk, mida kasutatakse kõigi kohalikus hoidlas määratud failide lisamiseks kaughoidlasse. Nii et kaughoidlas on kõik failid ja muudatused nähtavad kõigile, kellel on juurdepääs kaughoidlale.
  • git fetch on käsk, mida kasutatakse failide kaughoidlast kohalikku hoidlasse viimiseks, kuid mitte töökataloogi.
  • git merge on käsk, mida kasutatakse failide viimiseks kohalikust hoidlast töökataloogi.
  • git pullon käsk, mida kasutatakse failide hankimiseks kaughoidlast otse töökataloogi. See on samaväärne a git fetchja a-ga git merge.

Nüüd, kui me teame, mis on Git ja selle põhilised terminoloogiad, vaatame, kuidas saaksime faili giti alla paigutada . Teeme seda õigel ja raskel viisil. Ilma GUI-rakendusteta.

Eeldan, et teil on juba fail, mille soovite versiooni kontrolli alla panna. Kui ei, siis looge näidiskaust nimega 'MuskCult' ja pange sinna mõned näidiskoodifailid.

0. samm: koostage GitHubi konto. Duh.

Kui teil seda veel pole, saate selle siin teha.

1. samm: veenduge, et teie arvutisse oleks installitud Git.

Kui kasutate Maci , käivitage terminal ja sisestage järgmine käsk:

$ git --version

See käsib installija avada, kui teil pole veel gitit. Nii et seadistage see installeri abil. Kui teil on juba git olemas, näitab see lihtsalt teie installitud giti versiooni.

Kui kasutate Linuxi (deb), sisestage terminali järgmine:

$ sudo apt install git-all

Kui kasutate Windowsi :

$ get a mac

Nalja viskama ... Lõdvestuge ... Inimeste hulk, mille ma vallandasin ...

Lisateabe saamiseks selle hankimise kohta minge sellele lingile või sellele lingile .

2. samm: öelge Gitile, kes te olete.

Tutvusta end. Lohistage sisse. Tõsiselt, mainige oma Giti kasutajanime ja e-posti aadressi, sest iga Giti pühendunud isik kasutab seda teavet teie autori tuvastamiseks.

$ git config --global user.name "YOUR_USERNAME" 
$ git config --global user.email "[email protected]"
$ git config --global --list # To check the info you just provided

3. samm: genereerige / kontrollige oma masinas olemasolevate SSH-võtmete olemasolu. (Valikuline)

Miks sa küsid? Kasutades SSH protokolli , võite ühendada ja autentida r emote serverite ja teenuste . SSH-võtmete abil saate GitHubiga ühenduse luua ilma igal külastusel oma kasutajanime või parooli sisestamata.

SSH-i kohta lisateabe saamiseks järgige seda linki .

Mine siiaSSH-võtme olemasolu kontrollimiseks.

SSH-võtme genereerimiseks minge siia .

Mine siiaSSH-võtme lisamiseks oma GitHubi kontole.

Ja minge lõpuks siia, et testida selle ühendust.

Kui seadistasite SSH-i, asendate kõik git-käsud, millel on link, järgmisega:

Instead of : //github.com/username/reponame
You use : [email protected]/username/reponame.git
 Note : You can use both ways alternatively

Kasutan selles õpetuses SSH-protokolli.

4. samm: võtame ette

Looge GitHubis uus hoidla. Järgige seda linki.

Nüüd leidke kaust, mille soovite oma terminalis giti alla paigutada.

$ cd Desktop/MuskCult

Giti lähtestamine:

Ja selle asetamiseks giti alla sisestage:

$ touch README.md # To create a README file for the repository$ git init # Initiates an empty git repository

Hoidla kohta teabe saamiseks minge nüüd faili README.md muutma.

Failide lisamine peatuspiirkonda sidumiseks:

Nüüd lisage failid pühenduse git-hoidlasse:

$ git add . # Adds all the files in the local repository and stages them for commit
OR if you want to add a specific file
$ git add README.md # To add a specific file

Enne pühendumist vaatame, millised failid on lavastatud:

$ git status # Lists all new or modified files to be committed

Tehke oma Git Repos tehtud muudatused:

Nüüd saate oma git-reposse lisatud failide sidumiseks teha järgmist.

$ git commit -m "First commit"# The message in the " " is given so that the other users can read the message and see what changes you made

Git Repos tehtud muudatuste tühistamine:

Oletame, et tegite oma koodis lihtsalt mõne vea või panite soovimatu faili hoidlasse. Saate äsja lisatud failid lavastuse abil tühistada:

$ git reset HEAD~1# Remove the most recent commit# Commit again!

Lisage kaugkoht ja vajutage:

Iga kord, kui muudate faile ja salvestate, ei värskendata seda GitHubis automaatselt. Kõiki failis tehtud muudatusi värskendatakse kohalikus hoidlas. Nüüd muudatuste värskendamiseks masterile:

$ git remote add origin remote_repository_URL# sets the new remote

Git kauge käsu abil saate luua, vaadata ja kustutada ühendusi teiste hoidlates.

$ git remote -v# List the remote connections you have to other repositories.

Git kauge -v käsk nimekirjad URL-e Kaugühenduste pead teiste hoidlates.

$ git push -u origin master # pushes changes to origin

Nüüd lükkab git push- käsk muudatused teie kohalikus hoidlas kuni kaughoidlani, mille olete määranud päritoluks.

Ja kui me läheme ja vaatame GitHubis oma hoidla lehte, peaks see välja nägema umbes selline:

Ja see ongi kõik. Olete äsja lisanud failid GitHubis äsja loodud hoidlasse.

Vaadake failis tehtud muudatusi:

Kui hakkate oma failides muudatusi tegema ja need salvestate, ei ühti fail viimase versiooniga, mis on pühendatud gitile. Äsja tehtud muudatuste nägemiseks toimige järgmiselt.

$ git diff # To show the files changes not yet staged

Tagasi Git Repo viimase pühendatud versiooni juurde:

Nüüd saate valida, kas naasta viimasele määratud versioonile, sisestades:

$ git checkout .
OR for a specific file
$ git checkout -- 

Kuva kohustuste ajalugu:

Failidega tehtud pühendumiste ajaloo vaatamiseks saate kasutada käsku git log :

$ git log

Iga kord, kui teete muudatusi, mida soovite GitHubis kajastada, on kõige tavalisemad käsud:

$ git add .$ git status # Lists all new or modified files to be committed$ git commit -m "Second commit"$ git push -u origin master

Kui läheme oma repot vaatama, saame iga faili pühendamisteate abil tuvastada, kas kohustus oli edukas.

5. samm: see on kõik hästi ja hea ... Aga kuidas ma GitHubi teisi hoidlaid alla laadida ja nendega töötada?

Git Repo kloonimine:

Leidke kataloog, kuhu soovite repo kloonida. Kopeerige soovitud hoidla link ja sisestage järgmine:

$ git clone remote_repository_URL

Võite vabalt minna ja kloonida ülaltoodud repot, kasutades järgmist: //github.com/Gothamv/MuskCult

Git Repo muudatuste tõukamine:

Nüüd saate töötada soovitud failide kallal ja lubada muudatusi kohapeal. Kui soovite selles hoidlas muudatusi edastada, peate kas lisama hoidla kaastöölisena või olete loonud midagi, mida nimetatakse tõmbetaotluseks. Minge ja vaadake, kuidas seda siin teha, ja andke mulle oma koodifailiga tõmbenõue.

Koostöö:

Nii et kujutage ette, et teie ja teie sõber teevad projekti juures koostööd. Töötate mõlemad samade projektifailidega. Iga kord, kui teete mõningaid muudatusi ja lükate selle põhirepo sisse, peab teie sõber tõmbama muudatused, mille olete lükanud git-reposse. Mis tähendab, et veenduksite, et töötate iga kord, kui hakkate tööle asuma git-repo uusima versiooniga, on selleks õige käsk git pull.

Allpool on näide projektist, milles me sõbraga koostööd teeme:

Nii et veenduge, et need muudatused kajastuksid repo minu kohalikus koopias:

$ git pull origin master

Siin on veel kaks kasulikku git-käsku:

$ git fetch AND$ git merge

Kõige lihtsamalt öeldes git fetchjärgneb git merge võrdne a git pull. Aga miks need siis olemas on?

Kui kasutate git pull, proovib Git teie eest teie tööd automaatselt teha. See on kontekstitundlik , nii et Git ühendab kõik tõmmatud toimingud filiaalis, kus te praegu töötate. git pullÜhendab need automaatselt automaatselt, lubamata teil need kõigepealt üle vaadata .

Kui teie git fetch, kogub Git sihtharust kõik kohustused, mida teie praeguses harus pole, ja salvestab need teie kohalikku hoidlasse . Kuid see ei ühenda neid teie praeguse haruga . See on eriti kasulik, kui peate hoidla ajakohasena hoidma, kuid töötate millegi kallal, mis võib failide värskendamisel katki minna. Pühenduste integreerimiseks oma põhiharu kasutate git merge.

Üks asi veel:

.gitignore

Mis see siis on?

.gitignoreütleb gitile, milliseid faile (või mustreid) ta peaks eirama. Seda kasutatakse tavaliselt selleks, et vältida ajutisi faile oma töökataloogist, mis pole teistele kaasautoritele kasulikud, näiteks kompileerimistooted, ajutiste failide IDE-d, jne.

Nii et ülaltoodud näites kasutab süsteem faile nagu __pycache__, .DS_Store teabe kiiremaks juurdepääsuks. See pole teiste kaasautorite jaoks kasulik. Nii saame .gitignorefailil lisades öelda, et git neid ignoreerib .

Kasutage .gitignorefaili loomiseks käsku touch :

$ touch .gitignore

Ja võite lisada järgmised mustrid, et öelda gitil selliseid faile eirata.

/*.cmake/*.DS_Store/.user/buildetc. depending upon the files you want git to untrack

Ja see on põhitõdesid. Püsige kursis 2. osaga, mis keskendub filiaalile, ühendamisele, paigutamisele, Rebase'ile jne.

Kui teile artikkel meeldis, ärge unustage seda klapi nuppu purustada ja veenduge, et järgiksite mind 2. osas.

Rahu väljas ✌️

Viited:

Olemasoleva projekti lisamine GitHubi käsurea abil - Kasutaja dokumentatsioon

Kui lisate oma olemasoleva töö GitHubi, saate seda jagada ja koostööd teha paljudel toredatel viisidel. Kui migreerite oma… help.github.com Kuidas Gitiga (peaaegu) midagi tagasi võtta

Iga versiooni juhtimissüsteemi üks kõige kasulikumaid omadusi on võime oma vead "tagasi võtta". Gitis "tagasivõtmine" ... blog.github.com Git käsureal - ärge kartke teha 0,3 dokumentatsiooni

Giti installimiseks on ka teisi viise; võite isegi hankida graafilise Giti rakenduse, mis sisaldab käsurida ... dont-be-afraid-to-commit.readthedocs.io Alustage Giti kasutamist käsureal | GitLab

GitLabi kogukonnaväljaande, GitLab Enterprise Editioni, Omnibus GitLabi ja GitLab Runneri dokumentatsioon. docs.gitlab.com Mis vahe on 'git pull' ja 'git fetch' vahel?

Moderaatori märkus: Arvestades, et sellele küsimusele on juba postitatud kuuskümmend seitse vastust (mõned neist on kustutatud) ... stackoverflow.com