Git Commit Command forklaret

Den git commitkommando vil gemme alle iscenesat ændringer, sammen med en kort beskrivelse fra brugeren, i en ”begå” til den lokale arkiv.

Forpligtelser er kernen i Git-brugen. Du kan tænke på en forpligtelse som et øjebliksbillede af dit projekt, hvor en ny version af projektet oprettes i det aktuelle arkiv. To vigtige træk ved forpligtelser er:

  • du kan huske de forpligtede ændringer på et senere tidspunkt eller vende projektet tilbage til den version (se Git checkout)
  • hvis flere forpligtelser redigerer forskellige dele af projektet, overskriver de ikke hinanden, selvom forfatterne af forpligtelsen ikke var opmærksomme på hinanden. Dette er en af ​​fordelene ved at bruge Git over et værktøj som Dropbox eller Google Drive.

Muligheder

Der er en række muligheder, som du kan inkludere med git commit. Denne vejledning dækker dog kun de to mest almindelige muligheder. For en omfattende liste over muligheder, se Git-dokumentationen.

Muligheden -m

Den mest almindelige mulighed, der bruges med, git commiter -mindstillingen. Det -mstår for budskab. Når du ringer git commit, er det nødvendigt at medtage en besked. Meddelelsen skal være en kort beskrivelse af de ændringer, der er begået. Meddelelsen skal være i slutningen af ​​kommandoen, og den skal pakkes ind i citater " ".

Et eksempel på, hvordan du bruger -mindstillingen:

git commit -m "My message"

Outputtet i din terminal skal se sådan ud:

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

BEMÆRK: Hvis den-mikke er inkluderet igit commitkommandoen, bliver du bedt om at tilføje en besked i din standardteksteditor - se 'Brug af detaljerede forpligtelsesmeddelelser' nedenfor.

Alternativet -a

En anden populær mulighed er -amuligheden. Den -astår for alle. Denne valgmulighed inddeler automatisk alle ændrede filer, der skal begås. Hvis nye filer tilføjes, vil -aindstillingen ikke iscenesætte disse nye filer. Kun filer, som Git-arkivet er opmærksom på, bliver forpligtet.

For eksempel:

Lad os sige, at du har en README.mdfil, der allerede er forpligtet til dit arkiv. Hvis du foretager ændringer i denne fil, kan du bruge -aindstillingen i din kommando til at udføre og føje ændringerne til dit arkiv. Men hvad hvis du også tilføjede en ny fil, der hedder index.html? Den -amulighed vil ikke iscenesætte index.htmlsom det ikke i øjeblikket findes i arkivet. Når nye filer er tilføjet, skal git addkommandoen påberåbes for at iscenesætte filerne, før de kan forpligte sig til arkivet.

Et eksempel på, hvordan du bruger -aindstillingen:

git commit -am “My new changes”

Outputtet i din terminal skal se sådan ud:

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

Brug af detaljerede forpligtelsesmeddelelser

Selvom det git commit -m "commit message"fungerer fint, kan det være nyttigt at give mere detaljerede og systematiske oplysninger.

Hvis du forpligter dig uden at bruge -mindstillingen, åbner git din standardteksteditor med en ny fil, som inkluderer en kommenteret liste over alle de filer / ændringer, der er iscenesat i forpligtelsen. Derefter skriver du din detaljerede forpligtelsesmeddelelse (den første linje behandles som emnelinjen), og forpligtelsen udføres, når du gemmer / lukker filen.

Vær opmærksom på:

  • Hold din forpligtelsesmeddelelseslinjelængde mindre end 72 chartre som standardpraksis
  • Det er helt ok - og endda anbefales - at skrive meddelelser med flere linjer
  • Du kan også henvise til andre problemer eller trække anmodninger i din forpligtelsesmeddelelse. GitHub tildelte en nummerreference til alle pull-anmodninger og -problemer, så hvis du for eksempel vil henvise til pull-anmodning # 788 skal du blot gøre det i enten emnelinjen eller i brødteksten efter behov

Muligheden —ændring

Den --amendindstilling kan du ændre dit sidste begå. Lad os sige, at du lige har begået, og at du har lavet en fejl i din meddelelseslogmeddelelse. Du kan nemt ændre den seneste forpligtelse ved hjælp af kommandoen:

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

Hvis du glemmer at medtage en fil i forpligtelsen:

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

For tidlige forpligtelser sker hele tiden i løbet af din daglige udvikling. Det er let at glemme at iscenesætte en fil, eller hvordan du korrekt formaterer din forpligtelsesmeddelelse. Den --amendflaget er en bekvem måde at løse disse mindre fejl. Denne kommando erstatter den gamle meddelelsesmeddelelse med den opdaterede, der er angivet i kommandoen.

Ændrede forpligtelser er faktisk helt nye forpligtelser, og den tidligere forpligtelse vil ikke længere være i din nuværende filial. Når du arbejder med andre, skal du prøve at undgå at ændre forpligtelser, hvis den sidste forpligtelse allerede er skubbet ind i lageret.

Med --amender et af det nyttige flag, du kan bruge, det, --authorder giver dig mulighed for at ændre forfatteren til den sidste forpligtelse, du har lavet. Forestil dig en situation, du ikke har konfigureret dit navn eller din e-mail korrekt i git-konfigurationer, men du har allerede forpligtet dig. Med --authorflag kan du blot ændre dem uden at nulstille den sidste forpligtelse.

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

Alternativet -v eller —verbose

Den -veller --verboseindstilling bruges uden -mmulighed. Den -vmulighed kan være nyttig, når du ønsker at redigere en Git begå besked i din standard editor samtidig være i stand til at se de ændringer, du har foretaget for at begå. Kommandoen åbner din standardteksteditor med en meddelelsesskabelon for meddelelse samt en kopi af de ændringer, du har foretaget for denne forpligtelse. Ændringerne, eller diff, vil ikke blive inkluderet i forpligtelsesmeddelelsen, men de giver en god måde at henvise til dine ændringer, når du beskriver dem i din forpligtelsesmeddelelse.

Sådan squashes flere forpligtelser i en

Dette er en fantastisk funktion, rebaseder kan bruges i interactivetilstanden. For at squash det sidste n forpligter sig til et, skal du køre følgende kommando:

git rebase -i HEAD~n

Det åbner en teksteditor med noget der ligner følgende:

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

Lad den første forpligtelse være alene, og skift resten af picks til squash. Gem og afslut editoren.

Så hvis du ville squash de sidste tre forpligtelser, skal du først køre, git rebase -i HEAD~3og derefter vil du redigere dine forpligtelser for at se sådan ud:

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

Hvis du allerede har skubbet til en fjernbetjening, inden du klemmer dine forpligtelser, skal du skubbe til fjernbetjeningen igen med -fflag, ellers kaster git en fejl på dig.

Det anbefales kraftigt, at du læser oplysningerne i den åbnede fil, da der er mange ting, du kan gøre.

Mere information:

  • Git-dokumentation: begå