Git Commit parancs magyarázata

A git commitparancs az összes fokozatos változást, a felhasználó rövid leírása mellett, elmenti a helyi adattár „elkötelezettségében”.

A vállalások a Git használatának középpontjában állnak. Úgy gondolhat, hogy az elkötelezettség a projekt pillanatfelvétele, ahol a projekt új verziója jön létre az aktuális lerakatban. A vállalások két fontos jellemzője:

  • később visszahívhatja a bekövetkezett változásokat, vagy visszaállíthatja a projektet erre a verzióra (lásd: Git checkout)
  • ha több elkötelezettség szerkeszti a projekt különböző részeit, akkor sem írják felül egymást, még akkor sem, ha az elkövetés szerzői nem voltak tisztában egymással. Ez az egyik előnye annak, ha a Git-et olyan eszközhöz használja, mint a Dropbox vagy a Google Drive.

Lehetőségek

Számos lehetőség közül választhat git commit. Ez az útmutató azonban csak a két leggyakoribb lehetőséget fedi le. A lehetőségek átfogó listáját a Git dokumentációban találja meg.

A -m Opció

A leggyakrabban használt opció git commitaz -mopció. Az -müzenet jelentése. Híváskor git commitmeg kell adnia egy üzenetet. Az üzenetnek rövidnek kell lennie a végrehajtandó változásokról. Az üzenetnek a parancs végén kell lennie, és idézőjelekbe kell csomagolnia " ".

Példa az -mopció használatára :

git commit -m "My message"

A terminál kimenetének ilyennek kell kinéznie:

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

MEGJEGYZÉS: Ha aparancsot-mnem tartalmazzagit commit, akkor a rendszer kéri, hogy adjon hozzá egy üzenetet az alapértelmezett szövegszerkesztõbe - lásd alább a 'Részletes véglegesítési üzenetek használata' c.

Az -a Opció

Egy másik népszerű lehetőség az -aopció. A -amindenki számára áll. Ez az opció automatikusan módosítja az összes módosított fájlt. Új fájlok hozzáadása esetén az -aopció nem állítja be az új fájlokat. Csak azokat a fájlokat fogják lekötni, amelyekről a Git adattár tud.

Például:

Tegyük fel, hogy van egy README.mdfájlja, amelyet már lefoglaltak a tárába. Ha módosítja ezt a fájlt, használhatja a -acomm parancs opcióját a változtatások fokozatos feltöltésére és hozzáadására a tárházba. Mi lenne, ha új fájlt is hozzáadna index.html? Az -aopció nem állítja be index.html, mivel jelenleg nem létezik a tárban. Amikor új fájlokat adtak hozzá, git addmeg kell hívni a parancsot a fájlok szakaszosítása előtt, mielőtt azok a lerakathoz rendelhetők lennének.

Példa az -aopció használatára :

git commit -am “My new changes”

A terminál kimenetének ilyennek kell kinéznie:

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

Részletes véglegesítési üzenetek használata

Noha jól git commit -m "commit message"működik, hasznos lehet részletesebb és szisztematikusabb információkkal szolgálni.

Ha az -mopció használata nélkül elkötelezi magát , a git megnyitja az alapértelmezett szövegszerkesztőt egy új fájllal, amely tartalmazza az összes elkötelezett fájl / módosítás megjegyzett listáját. Ezután megírja a részletes véglegesítési üzenetet (az első sort a tárgysornak tekintjük), és a végrehajtás a fájl mentésekor / bezárásakor fog végrehajtódni.

Észben tart:

  • Az elkötelezett üzenetsorok szokásos módon 72 karakternél rövidebbek legyenek
  • Teljesen rendben van - sőt ajánlott - többsoros véglegesítési üzeneteket írni
  • Hivatkozhat más kérdésekre vagy kérésekre is az elkötelezettség üzenetében. A GitHub számhivatkozást rendelt az összes lekérési kérelemhez és kérdéshez, így például, ha a # 788. számú lekéréshez szeretne hivatkozni, akkor egyszerűen tegye meg ezt akár a tárgysorban, akár a törzsszövegben.

A —változtatási opció

Az --amendopció lehetővé teszi az utolsó elkötelezettség megváltoztatását. Tegyük fel, hogy csak elkötelezte magát, és hibát követett el az elkövetési naplóüzenetében. A legfrissebb elkötelezettséget kényelmesen módosíthatja a következő paranccsal:

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

Ha elfelejt egy fájlt belefoglalni az elkövetésbe:

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

A korai elkötelezettségek állandóan történnek a mindennapi fejlődésed során. Könnyen el lehet felejteni egy fájl besorolását vagy az elkötelezett üzenet helyes formázását. A --amendzászló kényelmes megoldás ezeknek a kisebb hibáknak a kijavítására. Ez a parancs lecseréli a régi végrehajtási üzenetet a parancsban megadott frissítettre.

A módosított kötelezettségvállalások valójában teljesen új kötelezettségvállalások, és az előző kötelezettségvállalás már nem az Ön jelenlegi fiókjában lesz. Amikor másokkal dolgozik, próbálja elkerülni a változtatások végrehajtását, ha az utolsó elkötelezettség már be van tolva a lerakatba.

Ezzel az --amendegyik hasznos zászló, amelyet használhat, --authorlehetővé teszi, hogy megváltoztassa az utolsó elkötelezettség szerzőjét. Képzeljen el egy olyan helyzetet, amelyben nem állította be megfelelően a nevét vagy az e-mail címét a git konfigurációkban, de már elkötelezte magát. A --authorflag használatával egyszerűen megváltoztathatja őket anélkül, hogy visszaállítaná az utolsó kötelezettségvállalást.

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

A -v vagy —verbose opció

A -vvagy --verboseopciót az -mopció nélkül használják . Ez a -vbeállítás akkor lehet hasznos, ha az alapértelmezett szerkesztőben szerkeszteni kíván egy Git-elkötelezettség üzenetet, miközben látja a változtatásokat, amelyeket a kötelezettségvállaláson végzett. A parancs megnyitja az alapértelmezett szövegszerkesztőt egy elkötelező üzenet sablonnal , valamint az e kötelezettségvállaláshoz végrehajtott módosítások másolatával. A változtatások vagy a diff nem lesznek benne az elkötelezettség üzenetben, de jó módot kínálnak arra, hogy a változtatásokra hivatkozhasson, amikor leírja őket az elkötelező üzenetben.

Hogyan lehet összevágni több elkövetést egybe

Ez egy fantasztikus funkció, rebaseamely a interactivemódban használható. Az utolsó n elkötelezettség összecsukásához futtassa a következő parancsot:

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