A git commit
parancs 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 commit
az -m
opció. Az -m
üzenet jelentése. Híváskor git commit
meg 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 -m
opció 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-m
nem 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 -a
opció. A -a
mindenki 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 -a
opció 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.md
fájlja, amelyet már lefoglaltak a tárába. Ha módosítja ezt a fájlt, használhatja a -a
comm 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 -a
opció nem állítja be index.html
, mivel jelenleg nem létezik a tárban. Amikor új fájlokat adtak hozzá, git add
meg 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 -a
opció 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 -m
opció 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 --amend
opció 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 --amend
zá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 --amend
egyik hasznos zászló, amelyet használhat, --author
lehető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 --author
flag 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 -v
vagy --verbose
opciót az -m
opció nélkül használják . Ez a -v
beá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ó, rebase
amely a interactive
mó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 pick
s 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