Folosirea bună a ramificării git poate ajuta cu siguranță în acest sens. Principalul lucru este că fiecare ramură individuală are o bază de configurare stabilă: nimic din exteriorul ramurului nu ar trebui să schimbe starea de configurare în cadrul ramurului, astfel încât mai târziu, când este timpul să exportați configurația în ramură și să o îmbinați în producție, doar modificările relevante. la ramură sunt înregistrate.
O modalitate de a face acest lucru este să aveți o ramură principală numită producție
, iar HEAD-ul acelei ramuri urmărește întotdeauna starea curentă de producție a bazei de cod. Sunteți cu toții de acord să nu vă angajați sau să îmbinați lucrurile producție
dacă nu te pregătești să eliberezi acele lucruri live.
Când Arjun dorește să lucreze la o nouă caracteristică, își face o nouă ramură producție
, și ei o numesc arjun-1
.
A doua zi, Beth trebuie să remedieze o eroare, așa că își face noua ramură producție
numit beth-1
.
Între timp, managerul de conținut Ceci se află în interfața de utilizare a site-ului, creând formulare web, ceea ce înseamnă că face modificări live de configurare care diferă de starea de configurare a producție
. Într-un fel, și ea se ramifică producție
! De fapt, să mergem mai departe și să creăm un ceci-1
se ramifica din producție
acum să reprezentăm asta, chiar dacă probabil că nu vom angaja nimic încă.
Câteva zile mai târziu, filialele respective ale lui Arjun și Beth au fost revizuite și acceptate, iar conducerea dorește să implementeze o nouă versiune cu munca lor pe site-ul live.
Primul lucru de făcut este să verificați ceci-1
ramură, exportați configurația live și trimiteți fișierele de configurare actualizate ceci-1
.
Acum puteți continua să mergeți la producție
: noua caracteristică arjun-1
, remedierea erorilor beth-1
, și actualizările de configurare live ceci-1
. Pot exista conflicte de îmbinare de revizuit, dar nu ar trebui să vă faceți griji cu privire la suprascrierea accidentală a configurației altcuiva. Acest lucru se datorează faptului că fiecare ramură individuală a avut o bază consecventă de la care să-și exporte propriile modificări individuale de configurare.
Să presupunem că nu ai făcut un ceci-1
ramură. În schimb, ai fuzionat arjun-1
și beth-1
în producție
, apoi a exportat configurația live și a trimis actualizările în direct producție
. Te-ai încurcat! Ați schimbat baza pentru modificările configurației site-ului live ale lui Ceci. Se bazaseră pe starea producției fără ramurile lui Arjun și Beth. Exportarea acum va suprascrie orice modificări de configurare pe care le-au făcut.