Itt találhatók az összes Git-parancs, amelyeket a múlt héten használtam, és mit csinálnak.

Kép jóváírása: GitHub Octodex

Mint a legtöbb újszülött, elkezdtem a StackOverflow Git parancsokat keresni, majd válaszokat lemásolni és beilleszteni anélkül, hogy valóban megértettem volna, mit csináltak.

Kép jóváírása: XKCD

Emlékszem, hogy gondoltam: "Nem lenne jó, ha lenne a leggyakoribb Git-parancsok listája és annak magyarázata, hogy miért hasznosak?"

Nos, itt évekkel később készítek egy ilyen listát, és felvázolok néhány bevált gyakorlatot, amelyeknek még a középhaladó szintű fejlesztőknek is hasznosnak kell lenniük.

Annak érdekében, hogy a dolgok praktikusak legyenek, ezt a listát azokra a tényleges Git-parancsokra alapozom, amelyeket az elmúlt héten használtam.

Szinte minden fejlesztő használ Git, és valószínűleg GitHub. De az átlagos fejlesztő valószínűleg csak ezt a három parancsot használja az idő 99% -ában:

git add - mindent
git activ -am "<üzenet>"
git push származási mester

Ez mindenképp jó, ha egyszemélyes csapaton dolgozik, hackathonon vagy eldobható alkalmazáson dolgozik, de amikor a stabilitás és a karbantartás prioritássá válik, a takarítás kötelezettséget vállal, az elágazó stratégiához ragaszkodik és az írás A koherens elkötelező üzenetek fontoskká válnak.

Először a leggyakrabban használt parancsok listájával kezdtem meg az újszülöttek számára, hogy megértsék, mi lehetséges a Gittel, majd lépjenek a fejlettebb funkciókba és a legjobb gyakorlatokba.

Rendszeresen használt parancsok

A Git inicializálásához a lerakatban (repo) csak be kell írnia a következő parancsot. Ha nem inicializálja a Git-et, akkor a repón belül semmilyen más Git-parancsot nem futtathat.

git init

Ha a GitHub-ot használja, és a kódot egy online tárolt GitHub repóhoz továbbítja, akkor távoli repót használ. Ennek a távoli repónak az alapértelmezett neve (más néven álnév) az origó. Ha egy projektet a Github-ból másolt, akkor ennek már van eredete. Ezt a származást a git remote -v paranccsal tekintheti meg, amely felsorolja a távoli repó URL-jét.

Ha inicializálta a saját Git repóját, és azt szeretné társítani egy GitHub repóhoz, létre kell hoznia egyet a GitHub-on, lemásolnia a megadott URL-t, és a git remote add origin parancsot kell használni a GitHub által biztosított URL-lel az „” helyébe. Innentől felveheti, elkötelezheti és megadhatja a távoli repot.

Az utóbbi akkor használatos, amikor meg kell változtatni a távoli lerakatot. Tegyük fel, hogy másolatot tett egy repót másoktól, és szeretné átváltani a távoli tárolót az eredeti tulajdonos helyett a saját GitHub-fiókjára. Kövesse ugyanazt a folyamatot, mint a távoli hozzáadás eredete, kivéve a set-url használatát a távoli repó megváltoztatásához.

git távoli -v
git távoli add orig 
git távoli set-url origó 

A repó lemásolásának leggyakoribb módja a git klón használata, amelyet a repó URL-je követ.

Ne feledje, hogy a távoli lerakat kapcsolódik ahhoz a fiókhoz, ahonnan a repót klónozta. Tehát ha valaki máshoz tartozó repót klónozott, akkor nem tud továbblépni a GitHub oldalra, amíg az eredet megváltoztatása a fenti parancsok használatával történik.

git klón 

Gyorsan megtalálja magát az ágak segítségével. Ha nem érti, hogy mely ágak vannak, vannak más oktatóanyagok, amelyek sokkal mélyebbek, és a folytatás előtt olvassa el ezeket (itt van egy).

A git branch parancs felsorolja a helyi gépen található összes ágot. Ha új ágot akar létrehozni, akkor használhatja a git ág címét, ahol a képviseli az ág nevét, például a „fő”.

A git checkout parancs meglévő ágra vált. A git checkout -b paranccsal új ágot is létrehozhat, és azonnal átválthat rá. A legtöbb ember ezt különálló ág- és pénztárparancsok helyett használja.

git ág
git ága 
git pénztár 
git checkout -b 

Ha egy csomó módosítást hajtott végre egy ágon, hívjuk „fejlesztés” -nek, és azt az ágot vissza akarjuk egyesíteni a fő ágba, akkor a git merge parancsot használjuk. Érdemes megnézni a mesterágot, majd futtatni a git merge development programot, hogy egyesüljenek a master fiókba.

git merge 

Ha több személlyel dolgozik, akkor olyan helyzetben találja magát, ahol a repót frissítették a GitHubon, de a helyi változtatások nincsenek. Ebben az esetben a git pull origin segítségével húzza ki a legfrissebb módosításokat a távoli ágból.

git pull Origin 

Ha kíváncsi van arra, hogy mely fájlokat módosította, és melyeket követi nyomon, használhatja a git állapotot. Ha azt szeretné látni, hogy az egyes fájlok mennyit módosultak, a git diff segítségével megtekintheti az egyes fájlokban megváltozott sorok számát.

git állapot
git diff --stat

Fejlett parancsok és bevált gyakorlatok

Hamarosan eléri azt a pontot, ahol azt akarja, hogy elkötelezettségei jól néznek ki és következetesek maradnak. Előfordulhat, hogy hegedülni kell az elkötelezettség előzményeivel, hogy könnyebben megértsék kötelezettségvállalásaikat, vagy hogy visszaállítsák a véletlenszerű áttörést.

A git log paranccsal megtekintheti az átadási előzményeket. Ezt akkor szeretné használni, ha meg szeretné tekinteni a kötelezettségvállalásainak történetét.

A kötelezettségeidet üzenetekkel és kivonattal látják el, amely véletlenszerű szám- és betűsorozat. Egy példa a hash-ra nézhet így: c3d882aa1aa4e3d5f18b3890132670fbeac912f7

git log

Tegyük fel, hogy elküldött valamit, ami megtörte az alkalmazását. Ahelyett, hogy kijavítana, és valami újat kitűzne, inkább csak visszamegy egy kötelezettségvállalásra, és próbálkozzon újra.

Ha vissza akar térni az időhöz, és kijelentheti az alkalmazást egy korábbi elkötelezettség alapján, akkor ezt közvetlenül megteheti, ha a kivonatot használja fióknévként. Ez leválasztja az alkalmazást az aktuális verziótól (mivel a történelmi rekordot szerkeszti, nem pedig a jelenlegi verziót).

git checkout c3d88eaa1aa4e4d5f

Ezután, ha megváltoztatja ebből a történelmi ágból, és újra meg akarja nyomni, akkor erőszakos lendületet kell tennie.

Vigyázat: Az erõszakolás veszélyes, és csak akkor szabad megtenni, ha erre feltétlenül szükség van. Ez felülírja alkalmazásának előzményeit, és el fogja veszíteni az utólagos eseményeket.

git push -f eredetű mester

Más esetekben egyszerűen nem praktikus mindent egy elkötelezettségben tartani. Lehet, hogy meg akarja menteni a fejlődést, mielőtt valami potenciálisan kockázatosat próbálna ki, vagy esetleg hibát követett el, és óvja magát a kínos zavartól, ha hibát okozott a verzióelőzményekben. Ehhez van egy új bázissal.

Tegyük fel, hogy 4 olyan kötelezettségvállalása van a helytörténetében (nem tolva a GitHub-ra), amelyben oda-vissza ment. Elkötelezettséged hanyagul és határozatlanul néz ki. A rebase segítségével összekapcsolhatja ezeket a kötelezettségvállalásokat egyetlen, tömör kötelezettségvállalásba.

git rebase -i FEJ ~ 4

A fenti parancs megnyitja a számítógép alapértelmezett szerkesztőjét (amely Vim, kivéve, ha valami másra állította), számos lehetőséggel megváltoztatva a kötelezettségvállalásait. Úgy néz ki, mint az alábbi kód:

válasszon 130deo9 legrégebbi átadási üzenetet
válasszon 4209fei második legrégebbi üzenetet
válasszon 4390gne harmadik legrégebbi üzenetét
válasszon bmo0dne legújabb elkötelező üzenetet

Ezek kombinálása érdekében a „pick” opciót „fixup” -re kell változtatnunk (ahogyan a kód alatt található dokumentáció azt mondja), hogy összegyűjtsük az elkötelezettségeket és elutasítsuk az átadási üzeneteket. Ne feledje, hogy a vim-ben meg kell nyomnia az „a” vagy az „i” gombot a szöveg szerkesztéséhez, a mentéshez és a kilépéshez be kell írnia az eva billentyűt, majd a „shift + z + z” billentyűt. Ne kérdezd tőlem, miért, csak az.

válasszon 130deo9 legrégebbi átadási üzenetet
javítás 4209fei második legrégebbi átadási üzenet
fixup 4390gne harmadik legrégebbi üzenet
fixup bmo0dne legújabb elküldési üzenet

Ez egyesíti az összes kötelezettségvállalását a kötelezettségvállalásba a „legrégebbi kötelezettségvállalási üzenet” üzenettel.

A következő lépés az átadási üzenet átnevezése. Ez teljesen vélemény kérdése, de mindaddig, amíg egy következetes mintát követ, minden rendben van. Azt javaslom, hogy használja a Google által az Angular.js számára kiadott kötelezettségvállalási irányelveket.

A kötelező üzenet megváltoztatásához használja a módosító jelzőt.

git sitout --amend

Ezzel megnyílik a vim is, és a szövegszerkesztési és mentési szabályok megegyeznek a fentiekkel. A jó elkötelezettségi üzenet példájához az alábbiakban olvashatjuk az iránymutatás szabályait:

feat: csíkos pénztár hozzáadása a fizetési oldalhoz
- csíkos fizetés gomb hozzáadása
- tesztek írása pénztárhoz

Az irányelvben felsorolt ​​típusok betartásának egyik előnye, hogy megkönnyíti a változási naplók írását. A láblécbe (ismét, az útmutatóban meghatározva) információkat is beilleszthet, amelyek hivatkoznak a kérdésekre.

Megjegyzés: kerülje el a vállalásainak visszavágását és fecsegését, ha egy projekten dolgozik együtt, és a kódot a GitHub-ra tolta. Ha elkezdi a verzióelőzmények megváltoztatását az emberek orra alatt, akkor végül megnehezítheti mindenki életét olyan hibák miatt, amelyeket nehéz követni.

Szinte végtelen számú lehetséges parancs létezik a Git-rel, de ezek a parancsok valószínűleg csak azok, amelyeket a programozás első néhány évében tudnia kell.

Sam Corcos a Sightline Maps vezető fejlesztője és társalapítója, amely a topográfiai térképek 3D-s nyomtatásának leg intuitívabb platformja, valamint a LearnPhoenix.io, egy középhaladó szintű oktatóhely a skálázható gyártási alkalmazások létrehozásához a Phoenix és a React segítségével.