Rebasing
Rebasing lar deg inkorporere endringer fra en gren til en annen gren ved å endre commit-historikken. Den spiller av forpliktelsene fra kildegrenen til målgrenen. Dette resulterer i en renere og mer lineær forpliktelseshistorie.
Eksempel: La oss si at du har en funksjonsgren kalt feature-branch
og du vil inkludere de siste endringene fra main
grenen. Du kan bruke følgende kommando:
git checkout feature-branch
git rebase main
Dette vil bruke forpliktelsene fra main
grenen til feature-branch
. Eventuelle konflikter må løses under rebaseprosessen.
Stashing
Stashing lar deg lagre gjeldende endringer, som ikke er klare til å bli forpliktet, og midlertidig gå tilbake til en ren arbeidskatalog. Dette er nyttig når du trenger å bytte til en annen gren eller jobbe med en annen funksjon uten å forplikte endringene du jobber med.
Eksempel: La oss si at du jobber med en funksjonsgren og du har gjort noen endringer, men du må bytte til en annen gren. Du kan bruke følgende kommandoer for å lagre endringene:
git stash
etter å ha byttet til den nye grenen, kan du bruke de lagrede endringene ved å bruke:
git stash apply
Git Hooks
Git Hooks
er skript som utløses av spesifikke Git-hendelser, som pre-commit, post-commit, pre-push, etc. De lar deg automatisere visse handlinger eller håndheve spesifikke regler i arbeidsflyten din.
Eksempel: Anta at du vil kjøre en linter på koden din før du forplikter deg. Du kan lage et pre-commit hook-skript som utløser linter og forhindrer commit hvis det er noen linting-feil.
Git Submodule
Git Submodule
lar deg inkludere et annet Git-depot som en underkatalog i hovedlageret ditt. Dette er nyttig når du har et prosjekt som er avhengig av eksterne biblioteker eller komponenter.
Eksempel: Du har et prosjekt som krever et spesifikt bibliotek. I stedet for å duplisere bibliotekets kode i depotet ditt, kan du legge det til som en undermodul. På denne måten kan du holde bibliotekkoden adskilt og enkelt oppdatere den ved behov.
Git Revert and Git Reset
Git Revert
angre en tidligere commit ved å opprette en ny commit som angrer endringene som er gjort i den opprinnelige commit. Git Reset
, derimot, lar deg flytte grenpekeren til en annen commit, og effektivt forkaster commits fra commit-historikken.
Eksempel: Hvis du ønsker å angre den siste commit, kan du bruke git revert HEAD
til å opprette en ny commit som angrer endringene som ble gjort i den siste commit. Hvis du vil forkaste den siste commit helt, kan du bruke git reset HEAD~1
til å flytte grenpekeren tilbake med en commit.
Disse avanserte konseptene i Git gir kraftige muligheter for å administrere depotet ditt effektivt. Å forstå hvordan du bruker dem og når du skal bruke dem, vil i stor grad forbedre Git-arbeidsflyten og prosjektledelsen.