Controlul versiunii master pentru echipele la distanță

Jan 25, 2026
Version control

Lucrul de la distanță a devenit mult mai frecvent în dezvoltarea web în ultimii ani. Înainte de controlul versiunii, lucrul la distanță pe același proiect de dezvoltare ar fi fost un coșmar absolut. Dezvoltatorii ar fi trebuit să fie Trimiteți fișiere mari unul la altul (probabil prin e-mail), lipirea în codul propriu înainte de ao trimite înapoi. Nu a existat nici o modalitate reală de a urmări ceea ce fusese adăugat și când.

  • 6 trebuie să aibă abilități pentru tinerii dezvoltatori web

Din fericire, controlul versiunii a sosit și a făcut dezvoltarea pe toate fronturile mult mai ușor de gestionat. Proiectele web au devenit mult mai ușor de implementat și de gestionat, mai ales atunci când vine vorba de a lucra într-o echipă de dezvoltare de la distanță. Nu mai trebuie să vă faceți griji cu privire la versiunea actuală a unui site web suprascris - Fiecare membru al echipei este liber să lucreze în orice fișier oricând, nu există nici o confuzie cu privire la cea mai recentă versiune a unui fișier este stocată - și de sus Stocare in cloud Ajută și la procesul.

În acest tutorial, vom folosi Github. pentru a gestiona codul nostru. Există numeroase tipuri diferite de instrumente de control al versiunii, cum ar fi Bitbucket și TFVC, dar chiar dacă toate acestea sunt diferite, principiile rămân aceleași atunci când vine vorba de gestionarea codului.

Pentru mai multe modalități de a face mai ușor procesul de construire a site-ului, consultați ghidurile noastre spre partea de sus Builder de site-uri web și web hosting serviciu.

Modelul de ramificație

În primul rând, este foarte important să aveți un model de ramificare de succes atunci când lucrați în orice echipă pentru a face ca procesul de dezvoltare și desfășurare să funcționeze fără probleme. Va fi cel mai probabil să aveți mai mulți dezvoltatori care lucrează la același proiect. Când lucrați cu o forță de muncă la distanță, cred că cel mai bun flux de lucru este compus din trei ramuri principale, precum și un set de temporari:

  • Dezvoltați ramura: Fiecare linie de cod a fost testată și validată de client.
  • Sucursala de staționare: Acest lucru va corespunde mediului de validare.
  • Filiala de eliberare: Aceasta conține ultima versiune a site-ului dvs. în producție.

De asemenea, va fi un set de ramuri de caracteristici. Cu toate acestea, acestea vor fi doar temporare pentru a construi inițial noile caracteristici.

Mai mulți dezvoltatori pe un singur proiect

Version control: Branching model

Cel mai bun flux de lucru este compus din trei ramuri principale: dezvolta, stadializare si eliberare

Să presupunem că conduceți o echipă cu doi dezvoltatori care lucrează de la distanță. Le vom numi Sarah și James: ambele lucrează la același site de comerț electronic pentru un client. Sarah trebuie să dezvolte o caracteristică care înregistrează detaliile clientului.

Vom sparge acest lucru în trei povestiri separate - adăugând, editare și eliminare - și apoi adăugați aceste trei bilete în backlogul Sprint.

Funcționează ramuri

Version control: Feature branches

Adăugarea unei ramuri de caracteristici pentru dezvoltarea unei caracteristici de detalii a clienților și adăugarea unei ramuri de poveste a utilizatorului pentru o sarcină de adăugare

Deci, hai să spunem că Sarah începe pe secțiunea Adăugarea detaliilor clientului. Ea ar trebui să creeze ramura "client-detalii" și o poveste de utilizator una pentru prima sarcină "add-detalii".

 Git Checkout dezvoltă & amp; & amp; git trage originea / dezvolta
git checkout -b caracteristică / detalii client
git checkout -b add-detalii 

Sarah va continua să lucreze la filiala temporară "add-adresă" la nivel local și să-și angajeze munca în timp ce se dezvoltă. Acum, să spunem că James vrea să-l ajute pe Sarah cu caracteristica Detaliile clienților, așa că începe să lucreze la ștergerea detaliilor.

James ar trage ultima versiune a ramurii comune și va crea o nouă ramură pentru povestea utilizatorului "DELETE-detalii". Apoi, el poate începe să-și facă propriile adăugări fără a vă îngrijora să suprascrie codul lui Sarah.

 Git Checkout caracteristică / detalii client
git trage originea / caracteristica / client-detalii
git checkout -b delete-detalii 

El va folosi, de asemenea, sucursala sa temporară pentru a codifica la nivel local și comite orice schimbări. Odată ce Sarah și-a terminat funcția la nivel local, ea pune biletul în revizuirea codului. Ea ar împinge codul ei la sucursala de staționare și va deschide o cerere de tragere cu mediul de staționare.

// își împinge codul la filiala de staționare
Git Push Origine Adăugați-Detalii
// deschide o cerere de tragere cu mediul de staționare
Git Cerere-Pull Stading Add-Detalii 

Vom avea acum ramurile de caracteristici ale clienților și cele două dintre povestea celor două dintre povestea utilizatorilor în dezvoltarea "Adăugați-detalii" și "DELETE-detalii".

Fuzionând

Version control: Adding new branch

Crearea unei noi sucursale pentru ștergerea povestirii utilizatorului, permițându-vă să faceți adăugări fără a vă îngrijora să suprascrieți codul unei alte persoane

Odată ce codul ei a fost revizuit, ea își poate îmbina filiala în staționare. Biletul este acum în coloana de validare, așteptând validarea de la dezvoltatorul principal.

 // Ea primește ultima versiune a ramurii de staționare
git checkout stadials & amp; & amp; git trageți originea / stadializarea
Git Merge Add-Detalii & amp; & amp; git push origine stadializare
// ea construiește mediul de validare
// solicită ca proprietarul produsului să valideze 

Odată ce lucrarea lui Sarah a fost validată, biletul poate fi mutat în coloana făcută. Ea își poate îmbina munca în filiala caracteristică și începe o altă poveste de utilizator, cum ar fi ștergerea detaliilor clienților.

 // Ea trage ultima versiune a ramurii de caracteristici
Git Checkout caracteristică / detalii client
git trageți caracteristica / detaliile clientului
git Merge add-adresa & amp; & amp; Git Push Origine caracteristică / detalii despre client 

Atunci când întreaga caracteristică a fost validată atât de dezvoltatorul principal, cât și de client, Sarah poate îmbina filiala caracteristică în dezvoltarea, deoarece este gata să plece.

 // Ea primește ultima versiune a ramurii de dezvoltare
git checkout dezvoltare & amp; & amp; git trage originea / dezvolta
Git Mergen Caracteristică / Detalii client & Amp; & amp; Git Push Origine se dezvoltă 

Implementați la producție

Version control: Deployment

Odată pregătit să se desfășoare, îmbinați să se dezvolte în eliberare și să lanseze implementarea

Odată ce totul este complet și este gata să se desfășoare în producție, James fuziune se dezvoltă în eliberare și lansează implementarea. În acest moment, el știa că tot codul este corect și clientul este fericit. El etichetează comiterea eliberării pentru a obține istoria fiecărei versiuni.

 Git Checkout dezvoltă & amp; & amp; git trage originea / dezvolta
Git Checkout RELEASE & AMP; & amp; git trage originea / eliberarea
git Merge dezvoltă & amp; & amp; git etichetă 2.1.
Git Push Origine Clecare --Tags 

Reguli de urmat pentru acest flux de lucru

Acest flux de lucru de dezvoltare de la distanță poate fi destul de dificil de înțeles la început, dar dacă obțineți echipa dvs. să lucreze prin această metodă, atunci aveți un flux de lucru gratuit fără a fi nevoie să panică despre fișierele care sunt suprascrise sau dezvoltatorii dvs. care lucrează în aceeași zonă.

Există câteva lucruri cheie de reținut:

  • Primul lucru pe care va trebui să-l învățați dezvoltatorii de la distanță este fluxul de lucru al versiunii dvs. și asigurați-vă că toate acestea sunt citite din aceeași carte.
  • Dacă dezvoltați o caracteristică, încercați să întrerupeți acest lucru în povestiri mai mici ale utilizatorilor. În acest fel este mai ușor să urmăriți fiecare comitere.
  • Nu pierdeți niciun pașiu: același flux de lucru trebuie urmat de fiecare dată.
  • Veți avea întotdeauna nevoie să vă îmbinați filiala pentru a pregăti următoarea versiune.
  • Ar trebui să curățați depozitul de staționare în fiecare săptămână, dacă este posibil. Ar trebui să ștergeți sucursala de stadializare, la nivel local și de la distanță și să o recreați de la dezvoltarea ramurii - a se vedea exemplul de mai jos:
 git co dezvolt & amp; & amp; git trage originea / dezvolta
git sucursală -d staționare & amp; & amp; Git Push Origine - Stadializare
git co -b stadials & amp; & amp; Git Pull Origin Stadializare 

Fluxuri suplimentare de lucru

Cu proiecte mai mici, este posibil să doriți să utilizați un flux de lucru mai puțin complex. Ați putea utiliza Maestrul, care conține cea mai recentă versiune, o ramură de dezvoltare și apoi un set de ramuri pentru fiecare caracteristică suplimentară - fie că este vorba de forum, formular de contact, sistem de checkout. Totul depinde de preferința dvs. personală.

Gestionarea conflictelor de îmbinare

Dealizarea conflictelor de îmbinare este destul de dificilă dacă lucrați în aceeași cameră, dar ele pot deveni și mai mult decât un coșmar dacă lucrați într-un birou diferit. Cel mai important lucru este să vă amintiți că puteți întotdeauna să fuzionați și să reveniți la stat înainte de a apărea conflictul.

Indiferent dacă faceți toate fuziunile ca dezvoltator de plumb sau echipa dvs. sunt cele care le fac independent, primul pas este să înțelegeți ce sa întâmplat.

  • Unul dintre cop-dezvoltatorii dvs. a editat aceeași linie în același fișier?
  • Au șters un fișier pe care l-ați modificat?
  • Ați adăugat amândoi un fișier cu același nume?

Git vă va spune că aveți căi nememberate prin intermediul git status. :

 $ GIT Statut
# Pe sistemul de checkout-sistem
# Ai căi nememberate.
# (fixați conflictele și rulați "git comite")
#
# Căi nemerite:
# (Utilizați "git add & lt; fișier & gt; ..." la marcajul de rezoluție)
#
# Ambele modificate: Checkout.html
#
Nu s-au adăugat modificări să comită (utilizați "git adăugați" și / sau "git comitet-o") 

Acum, cea mai frecventă cauză a unui conflict este atunci când modificările afectează aceleași fișiere pe aceeași linie. Deci, hai să aruncăm o privire la conținutul liniei conflictuale. Veți observa că GIT este foarte bun în faptul că va marca zona în conflict prin închiderea acestuia & lt; & lt; & lt; și ca; și & gt; & gt; & gt; & gt; & gt; & gt; & gt; și gt; . În acest caz, este Sistemul de verificare .

 & lt; & lt; & lt; & lt; CAP
Această linie a fost comisă în timp ce lucrează în sucursala "Formular de utilizator".
=======
Această linie, în contrast, a fost comisă în timp ce lucrează în sucursala "Checkout-System".
& gt; & gt; & gt; & gt; & gt; & gt; Refs / capete / Checkout-System 

Conținutul după primul marker provin din ramura de lucru curentă. După parantezele unghiului, Git ne spune ce ramură au venit schimbările. O linie cu ======= Separă cele două schimbări conflictuale.

Acum puteți deschide fișierul într-un editor, căutați marcatorii de conflict și faceți modificările necesare. Când ați terminat, fișierul trebuie să arate exact așa cum doriți să arate sau, alternativ, puteți spune lui Git că veți merge pur și simplu cu una dintre versiunile editate, numită a noastra sau a lor .

 Git Checkout - Calea / Conflict-File.html 

Există, de asemenea, multe aplicații pentru unelte de îmbinare care pot ajuta cu acest lucru. Kaleidoscopul este unul grozav pentru Mac.

Proiectare și gestionare a emisiunii

Version control: Issues and problems

Nu confunda problemele cu probleme: De asemenea, puteți utiliza etichetarea problemelor pentru îmbunătățiri, întrebări și bug-uri

Este la fel de important ca un dezvoltator de plumb pentru a avea un instrument de management de proiect pentru a gestiona lucrurile, cum ar fi sarcini și bug-uri, mai ales atunci când dezvoltatorii dvs. nu se bazează pe birou. Există numeroase soluții acolo, cum ar fi Zenhub și Asuna, dar cred că proiectul încorporat și sistemul de emisiune al lui Github este cel mai bun.

Puteți face lucruri cum ar fi creați un nou proiect, creați panouri sau atribuiți probleme. Și nu confunda problemele cu probleme: îl puteți folosi și pentru îmbunătățiri, întrebări și bug-uri, printre altele.

Iată câteva dintre cele mai bune caracteristici:

  • Sistem de etichetare încorporat: Vă permite să organizați și să vă prioritizați fluxul de lucru și să căutați cu ușurință prin proiecte pentru informații relevante.
  • MISTEONA: Perfect pentru asocierea problemelor cu caracteristici specifice sau faze ale proiectului, cum ar fi bug-urile care trebuie să fie fixate înainte de lansarea beta sau sarcini care trebuie finalizate în luna octombrie.
  • MULTI Misiuni: Problemele pot fi atribuite utilizatorilor în vrac, economisind timp și vă fac mai eficienți.
  • Comentând: Inginerii și echipele de management pot discuta cu ușurință progresul și rezultatele la fiecare pas al modului utilizând sistemul de comentare încorporat.
  • Lista de sarcini: Problemele mai mari pot fi defalcate în etape pentru a descuraja crearea de zeci de probleme microscopice, păstrând toate lucrările în același loc.
  • Formatul Markdown: Abilitatea de a utiliza formatarea Markdown se va dovedi populară cu dezvoltatorii dvs. și poate fi folosită în majoritatea locurilor din jurul orașului GitHub.
  • Panouri de proiect: Acestea pot fi folosite pentru a găzdui probleme, trageți solicitările și notele, clasificându-le ca cărți în coloane ale alegerii dvs., astfel încât să puteți privi proiectele mai mari în ansamblu.
  • Securitate inalta: Puteți avea încredere în Github pentru a vă păstra datele în siguranță și este mai greu de încălcat decât cele mai multe alte sisteme de management de proiect.

Configurarea unui proiect

Dacă mergeți la GitHub și apoi faceți-vă la una din depozitele dvs., veți vedea o filă numită proiecte. De acolo puteți selecta un nou proiect, configurați detaliile proiectului și creați un nou șablon de proiect.

Dacă selectați acum fila Probleme care este de-a lungul vârfului și selectați o nouă problemă, veți putea crea o nouă problemă. Apoi, puteți aplica diferite etichete - acestea sunt lucruri cum ar fi bug, îmbunătățire, întrebare și duplicat. De asemenea, puteți utiliza îmbunătățirea pentru o nouă caracteristică sau o solicitare. Apoi, puteți atribui diverși membri ai echipei la sarcină, o piatră de hotar și, de asemenea, proiectul pe care tocmai l-ați creat.

Membrii alocați vor avea apoi o listă a tuturor sarcinilor lor și puteți folosi chiar și Consiliul de proiect pentru a păstra o urmă a ceea ce este construit în prezent. Dacă vă amintiți tutorialul nostru anterior, vorbim despre mișcarea biletelor la Sprint Backlog și validare. Deci, GitHub funcționează foarte bine ca un instrument all-in-one pentru supravegherea unui proiect.

Acest articol a fost inițial publicat în numărul 311 din net , cea mai bună revistă din lume pentru designeri și dezvoltatori web. Cumpăra problema 311 aici sau Abonați-vă aici .

Articole similare:

  • Cum să reușești ca un dezvoltator independent
  • Dezvoltați componente reacționate reutilizabile
  • 4 sfaturi pentru a vă dezvolta abilitățile de dezvoltator

să - Cele mai populare articole

Cum se adaugă animație la SVG cu CSS

Jan 25, 2026

[Imagine: Web Designer] Când vine vorba de animarea cu SVG-urile, o oprire majoră poate fi ideea de a fi încurcat ..


Cum se proiectează cu forme CSS: o introducere

Jan 25, 2026

Baza fiecărui site web este de a împărți pagina în jos în elemente mai mici care au conținut. Marea problemă cu acest luc..


Stilul unui site folosind SASS

Jan 25, 2026

Puteți face foarte mult cu CSS - poate mai mult decât credeți - dar limbajul foii de stil venerabil are limitările sale. Înt..


Cum se creează un efect de tipărit animat

Jan 25, 2026

Când este folosit bine, CSS animație poate adăuga un interes și personalitate pe site-ul dvs. În acest articol, vom trece prin modul de a crea un ..


Cum se face texturi delicioase cu creioane

Jan 25, 2026

Când învățați Cum de a desena O lucrare de artă de viață continuă, este important să se creeze interes �..


Efectuați plante realiste în Cinema 4D

Jan 25, 2026

Indiferent de utilizarea finală, cele mai multe scene centrate pe o structură făcută de om vor beneficia de o atingere de fru..


Transformați desenele 2D în 3D cu proiectul Felix

Jan 25, 2026

Recenta pre-eliberare a noului Adobe Felix Pachet 3D. Face acest lucru minunat pentru a lua saltul de la 2d la imaginea 3D. Proiectul Felix este conceput pentru designeri, mai ..


Anatomia caricaturii: 15 sfaturi de top

Jan 25, 2026

Ca un freelancer cu normă întreagă, sunt obișnuit să lucrez într-o gamă de stiluri și Tehnici de desen . A..


Categorii