Rebasing
Ponovno baziranje vam omogućuje da uključite promjene iz jedne grane u drugu granu modificiranjem povijesti predaje. Reproducira predaje iz izvorne grane na ciljnu granu. To rezultira čišćom i linearnijom poviješću predaje.
Primjer: Recimo da imate pozvanu granu značajke feature-branch
i želite uključiti najnovije promjene iz main
grane. Možete koristiti sljedeću naredbu:
git checkout feature-branch
git rebase main
Ovo će primijeniti predaje iz main
grane na feature-branch
. Svi sukobi morat će se riješiti tijekom procesa ponovnog baziranja.
Stashing
Skrivanje vam omogućuje spremanje trenutnih promjena, koje još nisu spremne za uvrštavanje, i privremeno vraćanje u čisti radni direktorij. Ovo je korisno kada se trebate prebaciti na drugu granu ili raditi na drugoj značajci bez unošenja promjena na kojima trenutno radite.
Primjer: Recimo da radite na grani značajki i da ste napravili neke promjene, ali morate se prebaciti na drugu granu. Možete koristiti sljedeće naredbe da sakrijete svoje promjene:
git stash
nakon prebacivanja na novu granu, možete primijeniti skrivene promjene koristeći:
git stash apply
Git Hooks
Git Hooks
su skripte koje pokreću određeni Git događaji, kao što su pre-commit, post-commit, pre-push, itd. One vam omogućuju da automatizirate određene radnje ili provedete određena pravila u vašem tijeku rada.
Primjer: Pretpostavimo da želite pokrenuti linter na svom kodu prije predaje. Možete izraditi zakačivu skriptu prije predaje koja pokreće linter i sprječava predaju ako postoje bilo kakve pogreške pri povezivanju.
Git Submodule
Git Submodule
omogućuju vam da uključite drugo Git spremište kao poddirektorij unutar vašeg glavnog spremišta. Ovo je korisno kada imate projekt koji ovisi o vanjskim bibliotekama ili komponentama.
Primjer: imate projekt koji zahtijeva određenu biblioteku. Umjesto dupliciranja koda knjižnice u vašem repozitoriju, možete ga dodati kao podmodul. Na ovaj način možete držati kod knjižnice odvojen i jednostavno ga ažurirati kada je potrebno.
Git Revert and Git Reset
Git Revert
poništava prethodnu predaju stvaranjem nove obveze koja poništava promjene napravljene u izvornoj predaji. Git Reset
, s druge strane, dopušta vam da pomaknete pokazivač grane na drugo uvrštavanje, učinkovito odbacujući urezivanje iz povijesti urezivanja.
Primjer: Ako želite poništiti posljednje uvrštavanje, možete koristiti git revert HEAD
za stvaranje novog uvrštavanja koje poništava promjene napravljene u zadnjem urezivanju. Ako želite potpuno odbaciti posljednje uvrštavanje, možete koristiti git reset HEAD~1
za pomicanje pokazivača grane unatrag za jedno uvezivanje.
Ovi napredni koncepti u Gitu pružaju moćne mogućnosti za učinkovito upravljanje vašim spremištem. Razumijevanje kako ih koristiti i kada ih primijeniti uvelike će poboljšati vaš Git tijek rada i upravljanje projektima.