Čia pateikiamos visos „Git“ komandos, kurias naudojau praėjusią savaitę, ir tai, ką jos daro.

Kaip ir dauguma naujokų, aš pradėjau ieškoti „StackOverflow“ komandų „Git“, tada kopijuoti ir įklijuoti atsakymus, nesuprasdamas, ką jie padarė.

Prisimenu, galvojau,"Ar nebūtų malonu, jei būtų sąrašas dažniausiai pasitaikančių" Git "komandų kartu su paaiškinimu, kodėl jos yra naudingos?"

Na, štai aš, praėjus keleriems metams, sudarysiu tokį sąrašą ir išdėstysiu keletą geriausių praktikų, kurios turėtų būti naudingos net vidutinio lygio programuotojams.

Kad viskas būtų praktiška, aš grąžinu šį sąrašą iš tikrųjų „Git“ komandų, kurias naudojau per pastarąją savaitę.

Beveik kiekvienas kūrėjas naudoja „Git“ ir greičiausiai „GitHub“. Bet vidutinis kūrėjas tikriausiai naudoja šias tris komandas tik 99% laiko:

git add --allgit commit -am ""git push origin master

Viskas gerai ir gerai, kai dirbate vieno asmens komandoje, hakatone ar programoje „išmesti“, bet kai stabilumas ir priežiūra pradeda tapti prioritetu, valymas įsipareigoja, laikomasi šakos strategijos ir rašote darnios įsipareigojimo žinutės tampa svarbios.

Pradėsiu nuo dažniausiai naudojamų komandų sąrašo, kad pradedantiesiems būtų lengviau suprasti, kas įmanoma naudojant „Git“, tada pereiti prie pažangesnių funkcijų ir geriausios praktikos.

Reguliariai naudojamos komandos

Norėdami inicializuoti „Git“ saugykloje (repo), tiesiog turite įvesti šią komandą. Jei neinicijuosite „Git“, negalėsite vykdyti jokių kitų „Git“ komandų.

git init

Jei naudojate „GitHub“ ir stumiate kodą į „GitHub“ repo, kuris saugomas internete, naudojate nuotolinį atpirkimo įrenginį. Numatytasis nuotolinio atpirkimo pavadinimas (taip pat žinomas kaip slapyvardis) yra kilmė . Jei nukopijavote projektą iš „Github“, jis jau turi savo kilmę . Tą kilmę galite peržiūrėti naudodami komandą git remote -v , kuriame bus pateiktas nuotolinio atpirkimo URL.

Jei inicijavote savo „Git“ atpirkimą ir norite susieti jį su „GitHub“ atpirkimu, turėsite jį sukurti „GitHub“, nukopijuoti pateiktą URL ir naudoti komandą „ git remote add origin“ RL>, „GitHub“ pateiktu URL pakeičiant „“. Iš ten galite pridėti, įsipareigoti ir perduoti savo nuotolinį atpirkimą.

Paskutinis naudojamas tada, kai reikia pakeisti nuotolinę saugyklą. Tarkime, kad nukopijavote kieno nors kito atpirkimą ir norite pakeisti nuotolinę saugyklą iš pradinio savininko į savo „GitHub“ paskyrą. Vykdykite tą patį procesą kaip ir „ git“ nuotolinio pridėjimo pradžia , išskyrus tai, kad pakeistumėte nuotolinį atpirkimą , naudokite „ set-url“ .

git remote -vgit remote add origin git remote set-url origin 

Dažniausias būdas nukopijuoti atpirkimą yra naudoti „ git“ kloną, po kurio nurodomas atpirkimo URL.

Atminkite, kad nuotolinė saugykla bus susieta su paskyra, iš kurios klonavote saugyklą. Taigi, jei klonavote kam nors kitam priklausantį atpirkimą, negalėsite nusiųsti į „GitHub“, kol nepakeisite kilmės naudodamiesi anksčiau pateiktomis komandomis.

git clone 

Greitai atsidursite filialuose. Jei nesuprantate, kas yra šakos, yra ir kitų kur kas išsamesnių pamokų, kurias turėtumėte perskaityti prieš tęsdami.

Komanda Git filialas išvardyti visas šakas jūsų vietiniame kompiuteryje. Jei norite sukurti naują filialą, galite naudoti „ git branch“ me>, o & lt; name> reiškia filialo pavadinimą, pvz., „meistras“.

Git kasos me> komanda persijungia į esamą šaką. Taip pat galite nurodyti komandą „git checkout -b & lt; name>“, kad sukurtumėte naują filialą ir iškart į jį pereitumėte. Daugelis žmonių tai naudoja vietoj atskirų skyrių ir atsiskaitymo komandų.

git branchgit branch git checkout git checkout -b 

Jei atlikote daugybę filialo pakeitimų, pavadinkime jį „plėtoti“ ir norite tą filialą vėl sujungti su pagrindiniu filialu, naudokitės „ git sulieti“

ch> komanda. Jūs wa NT ch eckout pagrindinį filialas, n paleisti Git suliejimo d evelop sujungti išsivystyti į pagrindinį filialą.

git merge 

Jei dirbate su keliais žmonėmis, atsidursite tokioje padėtyje, kur atpirkimas buvo atnaujintas „GitHub“, tačiau vietinių pakeitimų neturite. Tokiu atveju galite naudoti „ git pull“ kilmę

ch>, kad ištrauktumėte naujausius pakeitimus iš to nuotolinio filialo.

git pull origin 

Jei norite sužinoti, kokie failai buvo pakeisti ir kas stebima, galite naudoti „ git“ būseną . Jei norite pamatyti , kiek kiekvienas failas buvo pakeistas, galite naudoti „ git diff“, kad pamatytumėte pakeistų eilučių skaičių kiekviename faile.

git statusgit diff --stat

Išplėstinės komandos ir geriausia praktika

Netrukus pasieksite tašką, kuriame norite, kad jūsų įsipareigojimai atrodytų gražiai ir išliktų nuoseklūs. Jums taip pat gali tekti mąstyti su savo įsipareigojimų istorija, kad padarytus įsipareigojimus būtų lengviau suprasti arba kad būtų panaikinti atsitiktiniai pokyčiai.

Git log“ komanda leidžia pamatyti įvykdymo istoriją. Tai norėsite naudoti norėdami pamatyti savo įsipareigojimų istoriją.

Jūsų įsipareigojimai bus su pranešimais ir maiša , kuri yra atsitiktinė skaičių ir raidžių serija. Maišos pavyzdys gali atrodyti taip: c3d882aa1aa4e3d5f18b3890132670fbeac912f7

git log

Tarkime, kad jūs nustūmėte tai, kas sugadino jūsų programą. Užuot pataisę ir stūmę kažką naujo, verčiau grįžkite vieną kartą ir bandykite dar kartą.

Jei norite grįžti į praeitį ir atsiskaityti su savo programa iš ankstesnio įsipareigojimo, tai galite padaryti tiesiogiai naudodami maišos pavadinimą kaip filialo pavadinimą. Tai atkirs jūsų programą nuo dabartinės versijos (nes redaguojate istorinį įrašą, o ne dabartinį).

git checkout c3d88eaa1aa4e4d5f

Tada, jei padarysite pakeitimus toje istorinėje šakoje ir norite vėl stumti, turėtumėte atlikti jėgos pastūmimą.

Dėmesio: stumkite jėgąyra pavojinga ir turėtų būti daroma tik tuo atveju, jei to būtinai turite. Tai perrašys jūsų programos istoriją ir prarasite viską, kas atsirado vėliau.

git push -f origin master

Kitu metu tiesiog nėra praktiška viską laikyti viename įsipareigojime. Galbūt norite išsaugoti savo pažangą prieš bandydami ką nors rizikingo, arba galbūt suklydote ir norite pasigailėti gėdos dėl klaidos versijų istorijoje. Tam mes turime git rebase .

Tarkime, kad savo vietinėje istorijoje turite 4 įsipareigojimus (neperkeltus į „GitHub“), per kuriuos eidavote pirmyn ir atgal. Jūsų įsipareigojimai atrodo aplaistyti ir neryžtingi. Galite naudoti „rebase“, kad visus tuos įsipareigojimus sujungtumėte į vieną glaustą įsipareigojimą.

git rebase -i HEAD~4

The above command will open up your computer’s default editor (which is Vim unless you’ve set it to something else), with several options for how you can change your commits. It will look something like the code below:

pick 130deo9 oldest commit messagepick 4209fei second oldest commit messagepick 4390gne third oldest commit messagepick bmo0dne newest commit message

In order to combine these, we need to change the “pick” option to “fixup” (as the documentation below the code says) to meld the commits and discard the commit messages. Note that in vim, you need to press “a” or “i” to be able to edit the text, and to save and exit, you need to type the escape key followed by “shift + z + z”. Don’t ask me why, it just is.

pick 130deo9 oldest commit messagefixup 4209fei second oldest commit messagefixup 4390gne third oldest commit messagefixup bmo0dne newest commit message

This will merge all of your commits into the commit with the message “oldest commit message”.

The next step is to rename your commit message. This is entirely a matter of opinion, but so long as you follow a consistent pattern, anything you do is fine. I recommend using the commit guidelines put out by Google for Angular.js.

In order to change the commit message, use the amend flag.

git commit --amend

This will also open vim, and the text editing and saving rules are the same as above. To give an example of a good commit message, here’s one following the rules from the guideline:

feat: add stripe checkout button to payments page
- add stripe checkout button- write tests for checkout

One advantage to keeping with the types listed in the guideline is that it makes writing change logs easier. You can also include information in the footer (again, specified in the guideline) that references issues.

Note: you should avoid rebasing and squashing your commits if you are collaborating on a project, and have code pushed to GitHub. If you start changing version history under people’s noses, you could end up making everyone’s lives more difficult with bugs that are difficult to track.

There are an almost endless number of possible commands with Git, but these commands are probably the only ones you’ll need to know for your first few years of programming.

Sam Corcos is the lead developer and co-founder of Sightline Maps, the most intuitive platform for 3D printing topographical maps, as well as LearnPhoenix.io, an intermediate-advanced tutorial site for building scalable production apps with Phoenix and React.