Objašnjena naredba Git commit

git commitNaredba će spasiti sve priređen promjene, uz opis kratak od korisnika, u „počiniti” na lokalnom skladištu.

Uređaji su srž upotrebe Gita. Zalaganje možete smatrati snimkom vašeg projekta, gdje se u trenutnom spremištu stvara nova verzija tog projekta. Dvije važne značajke obveza su:

  • možete pozvati počinjene promjene kasnije ili vratiti projekt na tu verziju (vidi Git naplata)
  • ako više odjela uređuje različite dijelove projekta, neće se međusobno prebrisati čak i ako autori predavanja nisu bili svjesni jedni drugih. To je jedna od prednosti korištenja Gita nad alatom poput Dropboxa ili Google diska.

Opcije

Postoji niz opcija koje možete uključiti git commit. Međutim, ovaj će vodič pokrivati ​​samo dvije najčešće opcije. Opsežni popis opcija potražite u dokumentaciji Gita.

Opcija -m

Najčešća opcija koja se koristi git commitje -mopcija. -mZalaže za poruke. Prilikom pozivanja git commitpotrebno je uključiti poruku. Poruka bi trebala biti kratak opis izmjena koje se počinju. Poruka treba biti na kraju naredbe i mora biti umotana u navodnike " ".

Primjer upotrebe -mopcije:

git commit -m "My message"

Izlaz na vašem terminalu trebao bi izgledati otprilike ovako:

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

NAPOMENA: Ako-mopcija nije uključena ugit commitnaredbu, od vas će se zatražiti da dodate poruku u zadani uređivač teksta - pogledajte "Korištenje detaljnih poruka urezivanja" u nastavku.

Opcija -a

Još jedna popularna opcija je -aopcija. -aStoji za sve. Ova opcija automatski postavlja sve izmjenjene datoteke u zapisnik. Ako se dodaju nove datoteke, -aopcija ih neće postaviti. Bit će urezane samo datoteke s kojima je Git spremište poznato.

Na primjer:

Recimo da imate README.mddatoteku koja je već predana vašem spremištu. Ako napravite promjene u ovoj datoteci, možete upotrijebiti -aopciju u naredbi za uređivanje da biste promijenili i dodali promjene u svoje spremište. Međutim, što ako dodate i novu datoteku pod nazivom index.html? -aOpcija neće u faze index.html, jer trenutno ne postoji u repozitoriju. Kad se dodaju nove datoteke, git addtreba se pozvati naredba kako bi se datoteke postavile na fazu prije nego što se mogu predati u spremište.

Primjer upotrebe -aopcije:

git commit -am “My new changes”

Izlaz na vašem terminalu trebao bi izgledati otprilike ovako:

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

Korištenje detaljnih poruka urezivanja

Iako git commit -m "commit message"djeluje sasvim u redu, može biti korisno pružiti detaljnije i sistematičnije informacije.

Ako se predate bez upotrebe -mopcije, git će otvoriti zadani uređivač teksta s novom datotekom, koja će sadržavati komentirani popis svih datoteka / promjena koje su uprizorene u urezivanju. Zatim napišete detaljnu poruku urezivanja (prvi će se redak tretirati kao naslov) i urezivanje će se izvršiti kada spremite / zatvorite datoteku.

Imati na umu:

  • Redovi poruke urezivanja neka budu manji od 72 znaka kao standardnu ​​praksu
  • Sasvim je u redu - pa čak i preporučljivo - pisati poruke s više redaka
  • Također se možete uputiti na druge probleme ili povući zahtjeve u poruci urezivanja. GitHub je dodijelio referencu broja svim zahtjevima i poteškoćama za povlačenje, pa na primjer, ako se želite uputiti na zahtjev za povlačenje # 788, jednostavno to učinite bilo u retku predmeta ili u tekstu tijela prema potrebi

Opcija —imend

--amendOpcija omogućuje vam da promijenite svoje posljednje predavanje. Recimo da ste upravo počinili pogrešku u poruci dnevnika urezivanja. Pomoću naredbe možete prikladno izmijeniti najnoviji urezivanje:

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

Ako zaboravite uključiti datoteku u urezivanje:

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

Prijevremene se obveze događaju cijelo vrijeme tijekom vašeg svakodnevnog razvoja. Lako je zaboraviti postaviti datoteku ili kako pravilno formatirati poruku urezivanja. --amendZastava je zgodan način da se riješili te manje grešaka. Ova će naredba zamijeniti staru poruku urezivanja ažuriranom specificiranom u naredbi.

Izmijenjeni i dopunjeni zapisi zapravo su potpuno novi zavjeti i prethodni zapisi više neće biti na vašoj trenutnoj grani. Kada radite s drugima, trebali biste pokušati izbjeći mijenjanje urezivanja ako je posljednje urezivanje već gurnuto u spremište.

Uz --amend, jedna od korisnih zastavica koju biste mogli koristiti je --authorkoja vam omogućuje da promijenite autora zadnjeg urezivanja. Zamislite situaciju da niste pravilno postavili svoje ime ili e-poštu u git konfiguracijama, ali već ste se obvezali. Pomoću --authorzastavice možete ih jednostavno promijeniti bez resetiranja zadnjeg urezivanja.

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

Opcija -v ili —verbose

Opcija -vili --verbosekoristi se bez -mopcije. -vOpcija može biti korisna kada želite urediti Git počiniti poruku u zadanom urednik dok se moći vidjeti promjene koje ste napravili za počiniti. Naredba otvara zadani uređivač teksta s predloškom poruke urezivanja, kao i kopijom promjena koje ste napravili za ovo urezivanje. Izmjene ili razlike neće biti uključene u poruku urezivanja, ali pružaju lijep način referenciranja vaših promjena kada ih opisujete u poruci urezivanja.

Kako zgužvati više obveza u jedan

Ovo je sjajna značajka rebasekoja se može koristiti u interactivenačinu rada. Da zgnječite posljednjih n obveza u jedan, pokrenite sljedeću naredbu:

git rebase -i HEAD~n

That will open up a text-editor with something similar to the following:

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

Leave the first commit alone, and change the rest of the picks to squash. Save and exit the editor.

So if you wanted to squash the last three commits, you’ll first run git rebase -i HEAD~3 and then you’ll want to edit your commits to look something like this:

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

If you’ve already pushed to a remote before squashing your commits, you’ll have to push to the remote again, with the -f flag, otherwise git will throw an error at you.

It is strongly suggested that you read the information in the opened file as there are many things you can do.

More Information:

  • Git documentation: commit