Sužinokite „Git“ pagrindus per mažiau nei 10 minučių

Taip, pavadinimas yra paspaudimas. Niekaip negalite suprasti „git“ technologijos pagrindų tik per 10 minučių. Bet maždaug per 25 minutes galite priartėti. Ir tai yra šio straipsnio tikslas.

Jei norite pradėti mokytis apie „Git“ technologiją, patekote į reikiamą vietą. Tai išsamus „Git“ vadovas pradedantiesiems. „Git“ yra daug klientų. Nepaisant kliento, technologijos yra vienodos. Bet šiame vadove mes naudosime „GitHub“, kad suprastume „Git“.

Pradėkime!

Kas yra versijų valdymas?

Versijų valdymas yra sistema, kuri laikui bėgant fiksuoja failo ar rinkinio pakeitimus, kad vėliau galėtumėte prisiminti konkrečias versijas. Taigi idealiu atveju bet kurį failą galime patalpinti kompiuteryje valdydami versiją.

Umm ... Gerai ... Bet kodėl Tho?

Štai kodėl:

Versijų valdymo sistema (VCS) leidžia jums grąžinti failus į ankstesnę būseną, grąžinti visą projektą į ankstesnę būseną, peržiūrėti laikui bėgant atliktus pakeitimus, pamatyti, kas paskutinį kartą pakeitė tai, kas gali sukelti problemų, kas įvedė problemą ir kada, ir dar daugiau. Naudojant VCS taip pat reiškia, kad jei sukite daiktus ar pametate failus, paprastai galite lengvai atkurti. Ir kartais jūs tiesiog norite sužinoti, „kas parašė šį nieką“ , ir turėti prieigą prie tos informacijos verta?

Taigi, kas yra „Git“?

„Git“ yra versijų valdymo sistema, skirta stebėti kompiuterio failų pokyčius ir koordinuoti tų failų darbą tarp kelių žmonių. „Git“ yra paskirstytoji versijų valdymo sistema . Taigi „Git“ nebūtinai remiasi centriniu serveriu, kuriame saugomos visos projekto failų versijos. Vietoj to, kiekvienas vartotojas „klonuoja“ saugyklos kopiją (failų kolekciją) ir savo kietajame diske turi visą projekto istoriją. Šis klonas turi visus originalo metaduomenis, o pats originalas yra saugomas savarankiškai priglobtame serveryje arba trečiosios šalies talpinimo tarnyboje, tokioje kaip „GitHub“.

„Git“ padeda sekti kodo pakeitimus. Iš esmės tai yra jūsų kodo redaktoriaus istorijos skirtukas (be inkognito režimo?). Jei bet kuriuo metu koduodami įvykote lemtingą klaidą ir nežinote, kas ją sukelia, visada galite grįžti į stabilią būseną. Taigi tai labai naudinga derinant. Arba galite tiesiog pamatyti, kokius pakeitimus savo kode atlikote laikui bėgant.

Ankstesniame pavyzdyje visos trys kortelės reiškia skirtingas to paties failo versijas. Bet kuriuo metu galime pasirinkti, kurią failo versiją norime naudoti. Taigi aš galiu pereiti į bet kurią failo versiją git laiko kontinuume.

„Git“ taip pat padeda sinchronizuoti kodą tarp kelių žmonių. Taigi įsivaizduokite, kad jūs ir jūsų draugas bendradarbiaujate įgyvendindami projektą. Jūs abu dirbate su tais pačiais projekto failais. Dabar Git perima tuos pakeitimus, kuriuos jūs ir jūsų draugas atlikote savarankiškai, ir sujungia juos į vieną „ Master “ saugyklą. Taigi naudodamiesi „Git“ galite įsitikinti, kad abu dirbate su naujausia saugyklos versija. Taigi jums nereikės jaudintis dėl to, kad vienas kitam siunčiate failus ir dirbate su juokingais originalaus failo kopijų skaičiais. Ir bendradarbiauti tolimais atstumais tampa taip pat lengva, kaip HTML?

„Git“ darbo eiga:

Prieš pradedant dirbti su „Git“ komandomis, būtina suprasti, ką tai reiškia.

Kas yra saugykla?

Saugykloje dar žinomas kaip atpirkimo nieko, bet iš šaltinio kodas kolekcija.

„Git“ darbo eigoje yra keturi pagrindiniai elementai.

Darbinis katalogas , sustojimo vieta , vietinė saugykla ir nuotolinė talpykla .

Jei atsižvelgsite į failą savo darbo kataloge, jis gali būti trijų galimų būsenų.

  1. Tai galima pastatyti. Tai reiškia, kad failai su atnaujintais pakeitimais pažymėti kaip priskirti vietinei saugyklai, bet dar nepriskirti.
  2. Jį galima modifikuoti . Tai reiškia, kad failai su atnaujintais pakeitimais dar nėra saugomi vietinėje saugykloje.
  3. Tai gali būti įsipareigota . Tai reiškia, kad failo pakeitimai saugiai saugomi vietinėje saugykloje.
  • git add yra komanda, naudojama pridėti failą, esantį darbo kataloge, į sustojimo sritį.
  • git commit yra komanda, naudojama pridėti visus failus, kurie yra išdėstyti, į vietinę saugyklą.
  • git pushyra komanda, naudojama visiems priskirtiems failams vietinėje saugykloje pridėti prie nuotolinės saugyklos. Taigi nuotolinėje saugykloje visi failai ir pakeitimai bus matomi visiems, turintiems prieigą prie nuotolinės saugyklos.
  • git fetch yra komanda, naudojama norint gauti failus iš nuotolinės saugyklos į vietinę saugyklą, bet ne į darbo katalogą.
  • git merge yra komanda, naudojama failams iš vietinės saugyklos patekti į darbo katalogą.
  • git pullyra komanda, naudojama norint gauti failus iš nuotolinės saugyklos tiesiai į darbo katalogą. Tai tolygu a git fetchir a git merge.

Dabar, kai žinome, kas yra „Git“ ir jos pagrindinės terminijos, pažiūrėkime, kaip galime patalpinti failą po „git“ . Mes tai padarysime teisingu ir sunkiu keliu. Be jokių GUI programų.

Darau prielaidą, kad jau turite failą, kurį norite patalpinti valdydami versiją. Jei ne, sukurkite aplanko pavyzdį pavadinimu „MuskCult“ ir įdėkite į jį keletą pavyzdinių kodų failų.

0 veiksmas: sukurkite „GitHub“ paskyrą. Duh.

Jei dar neturite, galite jį sukurti čia.

1 veiksmas: įsitikinkite, kad kompiuteryje įdiegta „Git“.

Jei naudojate „ Mac“ , suaktyvinkite terminalą ir įveskite šią komandą:

$ git --version

Tai paskatins atidaryti diegimo programą, jei dar neturite „git“. Taigi nustatykite jį naudodami diegimo programą. Jei jau turite „git“, jis tiesiog parodys, kurią „git“ versiją įdiegėte.

Jei naudojate „ Linux“ (deb), terminale įveskite:

$ sudo apt install git-all

Jei naudojate „ Windows“ :

$ get a mac

Tiesiog juokauji ... Atsipalaiduok ... Žmonių, kuriuos sukėliau, skaičius ... Phew ...

Eikite į šią nuorodą arba šią nuorodą, jei norite gauti daugiau informacijos, kaip ją gauti.

2 žingsnis: Pasakykite Gitui, kas esate.

Prisistatyk. Įstumkite. Rimtai paminėkite savo „Git“ vartotojo vardą ir el. Pašto adresą, nes kiekvienas „Git“ įsipareigojimas naudos šią informaciją norėdamas jus identifikuoti kaip autorių.

$ 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 žingsnis: sugeneruokite / patikrinkite, ar kompiuteryje nėra esamų SSH raktų. (Neprivaloma)

Kodėl klausi? Naudojant SSH protokolą , galite prisijungti ir autentifikuoti r įsijausti serveriams ir paslaugoms . Naudodami SSH raktus, galite prisijungti prie „GitHub“ nepateikdami savo vartotojo vardo ar slaptažodžio kiekvieno apsilankymo metu.

Spustelėkite šią nuorodą, kad sužinotumėte daugiau apie SSH.

Eik čianorėdami patikrinti, ar turite esamą SSH raktą.

Eikite čia, kad sugeneruotumėte SSH raktą.

Eik čiapridėti SSH raktą prie „GitHub“ paskyros.

Ir pagaliau eikite čia, norėdami išbandyti jo ryšį.

Jei nustatėte SSH, kiekvieną „git“ komandą, kurioje yra nuoroda, pakeisite:

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

Šioje pamokoje naudosiu SSH protokolą.

4 žingsnis: pradėkime

Sukurkite naują „GitHub“ saugyklą. Spustelėkite šią nuorodą.

Dabar suraskite aplanką, kurį norite įdėti po git savo terminale.

$ cd Desktop/MuskCult

Inicijuoti „Git“:

Norėdami įdėti jį į „git“, įveskite:

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

Dabar eikite redaguoti failą README.md, kad pateiktumėte informacijos apie saugyklą.

Pridėkite failus į sustojimo sritį:

Dabar pridėkite failus prie „git“ saugyklos, kad atliktumėte įsipareigojimus:

$ 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

Prieš įsipareigodami pažiūrėkime, kokie failai yra inscenizuojami:

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

Atlikite pakeitimus, kuriuos atlikote „Git Repo“:

Dabar atlikite failus, kuriuos pridėjote prie „git“ atpirkimo:

$ 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

Neatsisakykite ką tik atliktų „Git Repo“ pakeitimų:

Dabar tarkime, kad ką tik padarėte klaidą savo kode arba įdėjote nepageidaujamą failą į saugyklą, galite atjungti failus, kuriuos ką tik pridėjote naudodami:

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

Pridėkite nuotolinę kilmę ir spauskite:

Dabar kiekvieną kartą keisdami failus ir juos išsaugodami, jie nebus automatiškai atnaujinami „GitHub“. Visi faile atlikti pakeitimai atnaujinami vietinėje saugykloje. Dabar atnaujinkite pagrindinio kompiuterio pakeitimus:

$ git remote add origin remote_repository_URL# sets the new remote

Git“ nuotolinė komanda leidžia kurti, peržiūrėti ir ištrinti ryšius su kitomis saugyklomis.

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

Git remote -v“ komandoje pateikiami nuotolinių ryšių su kitomis saugyklomis URL adresai.

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

Dabar „ git push“ komanda stumia vietinės saugyklos pakeitimus į nuotolinę saugyklą, kurią nurodėte kaip kilmę.

Ir dabar, jei eisime ir patikrinsime savo saugyklos puslapį „GitHub“, jis turėtų atrodyti maždaug taip:

Štai ir viskas. Ką tik pridėjote failus prie saugyklos, kurią ką tik sukūrėte „GitHub“.

Žr. Pakeitimus, kuriuos atlikote faile:

Pradėję keisti failus ir juos išsaugoję, failas neatitiks paskutinės versijos, kuri buvo skirta „git“. Norėdami pamatyti ką tik atliktus pakeitimus:

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

Grįžkite į paskutinę skirtą „Git Repo“ versiją:

Dabar galite pasirinkti grįžti prie paskutinės nustatytos versijos įvesdami:

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

Peržiūrėti įsipareigojimų istoriją:

Galite naudoti komandą „ git log“, kad pamatytumėte savo failų atlikimo istoriją:

$ git log

Kiekvieną kartą, kai atliekate pakeitimus, kuriuos norite atspindėti „GitHub“, dažniausiai pateikiamos toliau nurodytos komandos.

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

Dabar, eidami pažiūrėti savo atpirkimo, galime nustatyti, ar įsipareigojimas buvo sėkmingas, žiūrėdami kiekvieno failo įsipareigojimo pranešimą.

5 žingsnis: viskas gerai ir gerai ... Bet kaip atsisiųsti ir dirbti kitose „GitHub“ talpyklose?

„Git Repo“ klonavimas:

Raskite katalogą, kuriame norite klonuoti atpirkimą. Nukopijuokite norimos saugyklos nuorodą ir įveskite:

$ git clone remote_repository_URL

Nesivaržykite pirmyn ir klonuokite aukščiau sukurtą atpirkimą naudodami: //github.com/Gothamv/MuskCult

„Git Repo“ pakeitimų stūmimas:

Dabar galite dirbti su norimais failais ir įsipareigoti atlikti pakeitimus vietoje. Jei norite perduoti šios saugyklos pakeitimus, turite būti pridėti kaip saugyklos bendradarbis arba sukūrę ką nors, vadinamą traukimo užklausa. Eikite ir patikrinkite, kaip tai padaryti čia, ir pateikite man užklausą su savo kodo byla.

Bendradarbiavimas:

Taigi įsivaizduokite, kad jūs ir jūsų draugas bendradarbiaujate įgyvendindami projektą. Jūs abu dirbate su tais pačiais projekto failais. Kiekvieną kartą, kai atliekate keletą pakeitimų ir įstumiate jį į pagrindinį atpirkimo įrankį, jūsų draugas turi ištraukti pakeitimus, kuriuos įstūmėte į „git“ atpirkimo įrankį. Tai reiškia, kad kiekvieną kartą, kai pradėsite dirbti, dirbate su naujausia „git repo“ versija, kelias yra „git pull“ komanda.

Toliau pateikiamas projekto, kuriame bendradarbiaujame su draugu, pavyzdys:

Taigi, norėdami įsitikinti, kad šie pakeitimai atsispindi mano vietinėje repo kopijoje:

$ git pull origin master

Štai dar dvi naudingos „git“ komandos:

$ git fetch AND$ git merge

Paprasčiausiais žodžiais, git fetchpo kurio git merge lygi a git pull. Bet kodėl tada tokie egzistuoja?

Kai naudosite git pull, „Git“ bandys automatiškai atlikti jūsų darbą už jus. Tai yra kontekstui jautri , todėl „Git“ sujungs visus ištrauktus įsipareigojimus į filialą, kuriame šiuo metu dirbate. git pullAutomatiškai sujungia įsipareigojimus, neleisdami jums jų pirmiausia peržiūrėti .

Kai jūs git fetch, „Git“ surenka visus tikslinio filialo įsipareigojimus, kurių nėra jūsų dabartiniame filiale, ir saugo juos jūsų vietinėje saugykloje . Tačiau tai nesujungia jų su dabartine jūsų šaka . Tai ypač naudinga, jei reikia atnaujinti saugyklą, tačiau dirbate dėl to, kas gali sugesti, jei atnaujinsite failus. Norėdami integruoti įsipareigojimus į savo pagrindinę šaką, naudokite git merge.

Dar vienas dalykas:

.gitignore

Taigi, kas tai?

.gitignore„git“ nurodo, kuriuos failus (ar šablonus) turėtų nepaisyti. Paprastai jis naudojamas siekiant išvengti pereinamųjų failų iš darbo katalogo, kurie nėra naudingi kitiems bendradarbiams, pvz., Kompiliavimo produktai, laikini failai, kuriuos sukuria IDE.

Taigi aukščiau pateiktame pavyzdyje failai, tokie kaip __pycache__, .DS_Store, sistemoje naudojami informacijai saugoti, kad būtų galima greičiau pasiekti. Tai nėra naudinga kitiems bendradarbiams. Taigi, „git“ galime pasakyti, kad jie jų nepaisytų, pridėdami .gitignorefailą.

Norėdami sukurti .gitignorefailą, naudokite komandą „touch“ :

$ touch .gitignore

Ir galite pridėti šiuos modelius, kad nurodytumėte „git“ nepaisyti tokių failų.

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

Tai beveik viskas dėl pagrindų. Sekite 2 dalį, kurioje daugiausia dėmesio bus skiriama filialui, sujungimui, pasilikimui, pakartotinei bazei ir kt.

Jei jums patiko straipsnis, nepamirškite sugadinti to „Clap“ mygtuko ir įsitikinkite, kad sekate mane dėl 2 dalies.

Peace Out Out️

Nuorodos:

Esamo projekto pridėjimas prie „GitHub“ naudojant komandinę eilutę - Vartotojo dokumentacija

Įdėję esamą darbą į „GitHub“ galite leisti dalintis ir bendradarbiauti daugybe puikių būdų. Jei perkeliate savo… help.github.com Kaip viską (beveik) anuliuoti naudojant „Git“

Viena iš naudingiausių bet kurios versijos valdymo sistemos savybių yra galimybė „anuliuoti“ savo klaidas. Programoje „Git“ „anuliuoti“ ... blog.github.com „ Git komandinėje eilutėje - nebijokite pateikti 0,3 dokumentacijos

Yra ir kitų „Git“ diegimo būdų; netgi galite gauti grafinę „Git“ programą, kurioje bus komandinė eilutė ... dont-be-afraid-to-commit.readthedocs.io Pradėkite naudoti „Git“ komandinėje eilutėje | „GitLab“

„GitLab Community Edition“, „GitLab Enterprise Edition“, „Omnibus GitLab“ ir „GitLab Runner“ dokumentacija. docs.gitlab.com Kuo skiriasi „git pull“ ir „git fetch“?

Moderatoriaus pastaba: atsižvelgiant į tai, kad į šį klausimą jau buvo paskelbti šešiasdešimt septyni atsakymai (kai kurie iš jų ištrinti) ... stackoverflow.com