Rebasing
Rebazarea vă permite să încorporați modificări de la o ramură la o altă ramură prin modificarea istoricului de comitere. Reluează comite-urile din ramura sursă în ramura țintă. Acest lucru are ca rezultat un istoric de comitere mai curat și mai liniar.
Exemplu: Să presupunem că aveți o ramură de caracteristici numită feature-branch
și doriți să încorporați cele mai recente modificări din main
ramură. Puteți folosi următoarea comandă:
git checkout feature-branch
git rebase main
Acest lucru va aplica commit-urile din main
ramură pe feature-branch
. Orice conflict va trebui rezolvat în timpul procesului de rebazare.
Stashing
Stashing vă permite să salvați modificările curente, care nu sunt gata pentru a fi comise, și să reveniți temporar înapoi la un director de lucru curat. Acest lucru este util atunci când trebuie să comutați la o altă ramură sau să lucrați la o altă caracteristică fără a efectua modificările la care lucrați în prezent.
Exemplu: Să presupunem că lucrați la o ramură caracteristică și ați făcut unele modificări, dar trebuie să treceți la o altă ramură. Puteți folosi următoarele comenzi pentru a ascunde modificările:
git stash
După trecerea la noua ramură, puteți aplica modificările ascunse folosind:
git stash apply
Git Hooks
Git Hooks
sunt scripturi care sunt declanșate de anumite evenimente Git, cum ar fi pre-commit, post-commit, pre-push etc. Vă permit să automatizați anumite acțiuni sau să aplicați reguli specifice în fluxul dvs. de lucru.
Exemplu: Să presupunem că doriți să rulați un linter pe codul dvs. înainte de a le efectua. Puteți crea un script hook pre-commit care declanșează linter-ul și previne commit-ul dacă există erori de listing.
Git Submodule
Git Submodule
vă permit să includeți un alt depozit Git ca subdirector în depozitul dvs. principal. Acest lucru este util atunci când aveți un proiect care depinde de biblioteci sau componente externe.
Exemplu: aveți un proiect care necesită o anumită bibliotecă. În loc să duplicați codul bibliotecii în depozitul dvs., îl puteți adăuga ca submodul. În acest fel, puteți păstra codul bibliotecii separat și îl puteți actualiza cu ușurință atunci când este necesar.
Git Revert and Git Reset
Git Revert
anulează o comitere anterioară prin crearea unui nou commit care anulează modificările făcute în comiterea inițială. Git Reset
, pe de altă parte, vă permite să mutați indicatorul de ramură la un alt commit, eliminând efectiv commit-urile din istoricul commit-urilor.
Exemplu: Dacă doriți să anulați ultima comitare, puteți utiliza git revert HEAD
pentru a crea un nou comit care anulează modificările făcute în ultima comitare. Dacă doriți să renunțați complet la ultima comitere, puteți utiliza git reset HEAD~1
pentru a muta indicatorul de ramificație înapoi cu un comit.
Aceste concepte avansate din Git oferă capabilități puternice pentru a vă gestiona depozitul în mod eficient. Înțelegerea modului în care să le folosiți și când să le aplicați vă va îmbunătăți considerabil fluxul de lucru Git și gestionarea proiectelor.