„Git Commit“ komanda paaiškinta

git commitKomanda išsaugoti visus surengė pakeitimus, kartu su trumpu aprašymu iš vartotojas, yra "padaryti" vietos saugykloje.

Įsipareigojimai yra „Git“ naudojimo pagrindas. Galite įsivaizduoti įsipareigojimą kaip savo projekto momentinę kopiją, kai dabartinėje saugykloje sukuriama nauja to projekto versija. Du svarbūs įsipareigojimų bruožai yra šie:

  • vėliau galėsite prisiminti įvykdytus pakeitimus arba grąžinti projektą į tą versiją (žr. „Git“ kasą)
  • jei keli įsipareigojimai redaguoja skirtingas projekto dalis, jie neperrašys vienas kito, net jei įsipareigojimų autoriai vienas apie kitą nežinojo. Tai yra vienas iš „Git“ pranašumų naudojant įrankį, pvz., „Dropbox“ ar „Google“ diską.

Galimybės

Yra keletas variantų, kuriuos galite įtraukti git commit. Tačiau šis vadovas apims tik dvi dažniausiai pasitaikančias galimybes. Norėdami gauti išsamų galimybių sąrašą, skaitykite „Git“ dokumentaciją.

-M variantas

Dažniausiai naudojamas variantas git commityra -mparinktis. Tai -mreiškia pranešimą. Skambinant git commitreikia įtraukti pranešimą. Pranešime turėtų būti trumpas aprašomas įvykdomas pakeitimas. Pranešimas turi būti komandos pabaigoje ir turi būti suvyniotas į kabutes " ".

Parinkties naudojimo pavyzdys -m:

git commit -m "My message"

Jūsų terminalo išvestis turėtų atrodyti maždaug taip:

[master 13vc6b2] My message 1 file changed, 1 insertion(+)

PASTABA: Jei-mnėra įtraukta įgit commitkomandą, būsite paraginti pridėti pranešimą į numatytąjį teksto rengyklę - žr. „Išsamių įsipareigojimų pranešimų naudojimas“ toliau.

-A variantas

Kitas populiarus variantas yra -agalimybė. -aStovi visiems. Ši parinktis automatiškai pakoreguoja visus modifikuotus failus. Jei bus pridėti nauji failai, -aparinktis tų naujų failų nestatys. Bus priskirti tik tie failai, apie kuriuos žino „Git“ saugykla.

Pavyzdžiui:

Tarkime, kad turite README.mdfailą, kuris jau buvo priskirtas jūsų saugyklai. Jei atliksite pakeitimus šiame faile, galite naudoti -aparinktį savo „Command“ komandoje, kad atliktumėte pakeitimus ir pridėtumėte juos į saugyklą. Tačiau kas būtų, jei pridėtumėte ir naują failą, vadinamą index.html? -aVariantas nebus etape index.html, nes ji šiuo metu nėra saugykloje. Kai bus pridėti nauji failai, git addkomandą reikia iškviesti, kad būtų galima susisteminti failus prieš juos priskiriant saugyklai.

Parinkties naudojimo pavyzdys -a:

git commit -am “My new changes”

Jūsų terminalo išvestis turėtų atrodyti maždaug taip:

[master 22gc8v1] My new message 1 file changed, 1 insertion(+)

Išsamių įsipareigojimų pranešimų naudojimas

Nors tai git commit -m "commit message"veikia puikiai, gali būti naudinga pateikti išsamesnę ir sisteminę informaciją.

Jei įsipareigosite nenaudodami šios -mparinkties, „git“ atidarys numatytąjį teksto redaktorių su nauju failu, kuriame bus komentuojamas visų failų / pakeitimų, kurie yra išdėstyti įsipareigojime, sąrašas. Tada parašysite išsamų įsipareigojimo pranešimą (pirmoji eilutė bus traktuojama kaip temos eilutė) ir įsipareigojimas bus atliktas, kai išsaugosite / uždarysite failą.

Nepamiršk:

  • Laikykite savo įsipareigojimų pranešimų eilutes, kurių ilgis yra mažesnis nei 72 simboliai, kaip įprasta
  • Visiškai gerai - ir net rekomenduojama - rašyti kelių eilučių įsipareigojimo pranešimus
  • Savo įsipareigojimo pranešime taip pat galite nurodyti kitas problemas arba ieškoti užklausų. „GitHub“ paskyrė numerio nuorodą visoms traukimo užklausoms ir problemoms, taigi, pavyzdžiui, jei norite nurodyti traukimo užklausą Nr. 788, tiesiog tai padarykite atitinkamai temos eilutėje arba pagrindiniame tekste.

Pakeisti variantą

--amendParinktis leidžia pakeisti jūsų paskutinis įsipareigoti. Tarkime, kad jūs ką tik įsipareigojote ir padarėte klaidą savo įsipareigojimų žurnalo pranešime. Galite patogiai modifikuoti naujausią įsipareigojimą naudodami komandą:

git commit --amend -m "an updated commit message"

Jei pamiršote įtraukti failą į įsipareigojimą:

git add FORGOTTEN-FILE-NAME git commit --amend -m "an updated commit message" # If you don't need to change the commit message, use the --no-edit option git add FORGOTTEN-FILE-NAME git commit --amend --no-edit

Priešlaikiniai įsipareigojimai įvyksta visą laiką kasdien vystantis. Lengva pamiršti suformuoti failą arba kaip tinkamai suformatuoti įsipareigojimo pranešimą. --amendVėliava yra patogus būdas išspręsti šiuos smulkius klaidų. Ši komanda pakeis seną įsipareigojimo pranešimą atnaujintu, nurodytu komandoje.

Pakeisti įsipareigojimai iš tikrųjų yra visiškai nauji įsipareigojimai ir ankstesnio įsipareigojimo nebebus jūsų dabartiniame filiale. Kai dirbate su kitais, turėtumėte stengtis išvengti įsipareigojimų keitimo, jei paskutinis įsipareigojimas jau įstumtas į saugyklą.

Naudodami --amendvieną iš naudingų žymių, kurias galite naudoti --author, galite pakeisti paskutinio atlikto įsipareigojimo autorių. Įsivaizduokite situaciją, kai netinkamai nustatėte savo vardą ar el. Pašto adresą „git“ konfigūracijose, bet jau įsipareigojote. Naudodamiesi --authorvėliava, galite juos paprasčiausiai pakeisti nenustatydami paskutinio įsipareigojimo.

git commit --amend --author="John Doe "

Variantas -v arba —verbose

-vArba --verbosevariantas yra naudojamas be -mvariantą. Ši -vparinktis gali būti naudinga, kai norite redaguoti „Git“ įsipareigojimo pranešimą numatytuoju redaktoriumi, tuo pačiu matydami atliktus įsipareigojimo pakeitimus. Komanda atidaro numatytąjį teksto rengyklę su įsipareigojimo pranešimo šablonu , taip pat su šiuo įsipareigojimu atliktų pakeitimų kopija. Pakeitimai arba diff nebus įtraukti į įsipareigojimo pranešimą, tačiau jie yra puikus būdas nurodyti jūsų pakeitimus, kai aprašote juos savo įsipareigojimo pranešime.

Kaip sutraukti kelis įsipareigojimus į vieną

Tai nuostabi funkcija, rebasekurią galima naudoti interactiverežime. Norėdami sutraukti paskutinius n įsipareigojimus į vieną, vykdykite šią komandą:

git rebase -i HEAD~n

Tai atvers teksto redaktorių su kažkuo panašiu į šį:

pick commit_1 pick commit_2 pick commit_3 ... pick commit_n # Bunch of comments

Palikite pirmąjį įsipareigojimą ramybėje, o likusius dalykus pakeiskite pickį squash. Išsaugokite ir išeikite iš redaktoriaus.

Taigi, jei norite sutrumpinti tris paskutinius įsipareigojimus, pirmiausia paleiskite git rebase -i HEAD~3ir tada norėsite redaguoti savo įsipareigojimus, kad atrodytumėte maždaug taip:

pick dd661ba Commit 1 squash 71f5fee Commit 2 squash f4b4bf1 Commit 3

Jei prieš išmesdami savo įsipareigojimus, jau stūmėte į nuotolinio valdymo pultą, turėsite dar kartą stumti į nuotolinio valdymo pultą su -fvėliava, kitaip „git“ išmes jums klaidą.

Primygtinai siūloma perskaityti informaciją atidarytame faile, nes galite padaryti daug dalykų.

Daugiau informacijos:

  • „Git“ dokumentai: įsipareigokite