Cum să colaborați cu GitHub

Dacă nu știți deja, GitHub este un mod incredibil de eficient de a colabora pe proiecte de dezvoltare. Oferind un loc pentru oricine care are o conexiune la internet să aibă un bulevard în care să poată partaja codul cu lumea gratuit (să nu mai vorbim de instrumentele robuste de susținere a inspecției sursei și de vizualizarea ușoară a istoricilor comiterii). GitHub a fost adoptat de numeroasele proiecte cu surse deschise, ca bază principală pentru colaborare și contribuție.

Dar cum vă alăturați și contribuiți la un proiect? Sigur, știți cum să utilizați Git pentru a urmări modificările fișierelor și pentru a le împinge acelor fișiere către un server. Dar există beneficii majore pentru implicarea în proiecte mai mari cu surse deschise, iar GitHub este, fără îndoială, cel mai bun loc pentru a începe. Astăzi, vom discuta câteva reguli ale drumului pentru colaborarea în proiecte open source și vă va oferi cunoștințele și intuiția de care veți avea nevoie pentru a vă implica.


Începeți micul

Nu vă temeți să începeți puțin

Unul dintre cele mai importante lucruri pe care trebuie să le înțelegeți atunci când începeți colaborarea cu proiecte open-source este să vă recunoașteți rolul. Adesea, există o mulțime de lucruri pe care le puteți dezvolta ca dezvoltator, care nu implică faptul că sunteți un programator extrem de inteligent. De fapt, teama de a fi un programator inadecvat este adesea un motiv pentru care oamenii nu se implică în proiecte open source pentru a începe. Nu vă fie frică să începeți mici: în loc să încercați să reparați un bug major sau să rescrii un întreg modul, încercați să găsiți lucruri precum inadecvări de documentație sau testarea și patch-uri pe dispozitivele încrucișate sau chiar simple erori de sintaxă și probleme gramaticale GitHub utilizator mzgol).

Aceste tipuri de sarcini reprezintă o modalitate bună de a vă aduce piciorul în ușă ca un contribuitor la proiect fără a încerca să vă ocupați mai mult decât vă puteți descurca. Înscrieți-vă la CodeTriage pentru a obține probleme GitHub automate trimise în căsuța de e-mail. Dacă vă atingeți căsuța poștală, vă simțiți încrezător că puteți să vă ocupați de aceasta și să trimiteți o solicitare de tragere. (Vom vorbi despre cum să facem asta puțin mai departe în post.)


Aflați ecosistemul proiectului

Cu orice efort de colaborare, probabil a fost adoptat un set de convenții. Aceasta poate include un set de vocabular, o modalitate de a contribui și format mesajele de comitere, un anumit ritm de colaborare pe care contribuabilii au fost de acord cu standardele sintactice care au fost stabilite. Înainte de a încerca să vă implicați într-un proiect, citiți toate documentele legate de aceste lucruri. De exemplu, GitHub a standardizat a CONTRIBUTING.md (consultați instrucțiunile pentru a vă implica în jQuery pentru un exemplu amănunțit). Aceste ghiduri sunt menținute de oamenii care întrețin și codul de bază și codul master branch.

O altă modalitate de a înțelege ecosistemul unui proiect este aceea de a examina pur și simplu codul și codul existent git log. Citirea prin mesajele de comitere și perceperea stilului de cod vă pot spune multe despre un proiect. Citiți prin documentația proiectului și adoptați vocabularul folosit pentru a vă menține continuitatea și pentru a vă exprima vocea similară.

Odată ce faceți parte din ecosistemul cultural al proiectului, cum faceți de fapt contribuie cod?


Fluxul de lucru Pull-Request pentru Contribuția Codului

Fluxul de lucru pentru contribuirea codului poate părea descurajant la început.

Fluxul de lucru pentru contribuirea codului poate părea descurajant la început. Cel mai important lucru pe care trebuie să-l amintiți este să urmați modelele și standardele subliniate de proiectul pe care lucrați (după cum am discutat deja). Fluxul general de lucru pe care îl suportă GitHub este destul de simplu.

  1. Închideți repo țintă în contul dvs. propriu.
  2. Clonați repo la mașina dvs. locală.
  3. Verificați o nouă "ramură de subiect" și efectuați modificări.
  4. Împingeți sucursala subiectului la furculita.
  5. Utilizați difuzorul de difuzare pe GitHub pentru a crea o cerere de tragere prin intermediul unei discuții.
  6. Efectuați modificările solicitate.
  7. Cererea de tragere este apoi îmbinată (de obicei în ramura principală), iar ramificația de subiect este ștearsă din repo în amonte (țintă).

În acest flux de lucru, este posibil să observați multe variații pentru un anumit proiect. De exemplu, convențiile de numire pentru sucursalele tematice variază. Unele proiecte folosesc convenții cum ar fi bug_345, unde 345 este ID-ul # al unei probleme GitHub care a fost depusă. Unele proiecte preferă mesaje de comitere mai scurte decât altele. Iată o serie de comenzi care vor completa fluxul de lucru de mai sus.

Pasul 1: Forking

Fork repo pe GitHub.com



Pasul 2: Clonarea

Clonați repo utilizând adresa URL din bara laterală dreaptă:

git clone [email protected]: jcutrell / jquery.git

Pasul 3: Adăugarea telecomenzii din amonte

Schimbați în directorul clonat și apoi în acest moment puteți adăuga telecomanda în amonte:

cd jquery git adăugați la distanță upstream [email protected]: jquery / jquery.git

Acest lucru vă va permite acum să trageți modificările de la sursă la nivel local și să le îmbinați, după cum urmează:

 git preluați git merge în amonte / master

Pasul 4: Verificarea unei ramuri de subiect

Cu toate acestea, înainte de a face propriile modificări, verificați o ramură de subiect:

git checkout -b enhancement_345

Pasul 5: Angajamentul

Acum, puteți să faceți modificările și să creați o comisie care să urmărească doar acele schimbări.

git commit-am "adăugând o smileyface la documentație."

Pasul 6: Împingere

Apoi, veți împinge această ramificație subiectul la propria dvs. furcă a proiectului.

git împinge originea enhancment_345

Pasul 7: Crearea unei solicitări de tragere

În cele din urmă, veți crea o solicitare de tragere. Mai întâi, du-te la furculita ta de repo. S-ar putea să vedeți a "sucursalele dvs. împinse recent", și dacă da, puteți alege "Comparați și trageți solicitarea". În caz contrar, puteți selecta sucursala din meniul derulant și apoi faceți clic pe "Cerere trage" sau "Comparaţie" în partea dreaptă sus a secțiunii repo.


Crearea unei solicitări de tragere prin Comparați și trageți cererea buton.

Crearea unei solicitări de tragere prin meniul derulant din filială.

Oricare dintre acestea vă va duce la o pagină în care puteți crea o solicitare de tragere și puteți comenta cu privire la cerere. Această pagină include, de asemenea, o vizualizare a modificărilor efectuate. Acest lucru facilitează administratorului de proiect să vadă ce ați făcut și să luați decizii mai ușor dacă doriți să vă îmbinați comiterea. Dacă au întrebări, le pot cere în comentarii; de asemenea, vă pot cere să vă curățați solicitarea de tragere și să retrimiteți și apoi să închideți cererea de tragere.

Rețineți că este incredibil de important să îi arătați administratorilor un respect total al proiectului; la urma urmei, puteți să utilizați întotdeauna versiunea codificată a codului dvs. și dacă nu au ales să vă tragă modificările, este pentru că au această poziție. Rețineți, conform angajamentului angajatului Github Zach Holman în "Cum GitHub utilizează GitHub pentru a construi GitHub", cererile de tragere sunt conversații. Acesta este modul în care acestea trebuie tratate; în loc să vă așteptați ca angajamentul dvs. să fie acceptat, trebuie să vă așteptați doar că va deschide o conversație despre codul pe care l-ați scris.


Probleme GitHub + solicitări de tragere = management de proiect Zen

GitHub oferă GitHub Issues, care este o modalitate robustă de a crea conversații documentate, interactive, automate despre bug-uri sau caracteristici pentru orice proiect dat. În timp ce problemele pot fi dezactivate, ele sunt activate în mod implicit. Există o mulțime de caracteristici minunate pe care Issues le-a construit, dar una dintre cele mai importante caracteristici este integrarea sa cu cererile de tragere. Un utilizator poate face referire la o problemă în mesajul de comitere prin includerea pur și simplu a ID-ului numeric al problemei în mesajul de comitere. De exemplu:

git commit-am "Adăugarea unui antet; remediază # 3"

Acest mesaj de comitet va marca automat problema # 3 ca fiind închisă atunci când cererea de tragere asociată este acceptată. Acest tip de automatizare face din GitHub un instrument minunat pentru gestionarea proiectelor de dezvoltare.


Căutați canalele secundare de colaborare

Deseori, proiectele mari cu surse deschise beneficiază de multe tipuri de activități de colaborare.

Nu vă lăsați prinși să vă gândiți că singura modalitate prin care puteți contribui este prin solicitări de tragere. Deseori, proiectele mari cu surse deschise beneficiază de multe tipuri de activități de colaborare. De exemplu, un proiect ca Ruby on Rails era notoriu pentru el comunitate; această comunitate ar răspunde la întrebări pe forumuri și în camerele de chat ale IRC pentru a ajuta la construirea cunoștințelor despre acest cadru și, de asemenea, ar ajuta la direcționarea viitoare a cadrului prin vorbirea de idei și descoperirea de bug-uri.

Aceste canale de colaborare sunt de obicei deschise ca medii de asistență așa cum am menționat mai înainte, cum ar fi forumuri și camere de chat. Pot exista, de asemenea, lanțuri de e-mail, întâlniri sau apeluri de conferință care ajută la definirea direcției proiectului și la crearea unei comunități plină de viață și productivă în jurul proiectului. Fără acest tip de comunitate, cererile de tragere sunt mult mai puțin eficiente.


Cea mai mare parte a tuturor, este despre atitudinea ta

Amintiți-vă, sursa open source este condusă de oameni care au atitudinea că schimbul de cunoștințe și construirea inteligenței colaborative este un efort meritoriu. Implicarea dvs. în aceste proiecte va fi cea mai eficientă dacă abordați un anumit proiect cu atitudinea curioasă care întreabă "cum pot să vă ajut?" mai degrabă decât o atitudine închisă care spune: "Voi ajuta oricum vreau". Oamenii din lumea open source doresc să lucreze cu oameni care sunt cu adevărat determinați să-i ajute pe alții.


Concluzie

Dacă sunteți interesat să vă implicați într-un proiect open source, minunat! Amintiți-vă, dacă abordați proiectul cu atitudinea corectă și începeți puțin, puteți vedea numele dvs. pe cererile de tragere îmbinate în cod care este distribuit oamenilor din întreaga lume și folosit în fiecare zi. Aveți timp să aflați despre proiect și despre persoanele implicate în proiect. Dezvoltați un interes autentic pentru a ajuta proiectul să devină mai bun. Puterea lui GitHub și a lumii open-source continuă să crească în fiecare zi; începeți colaborarea cu alți dezvoltatori și puteți deveni o parte a acelei lumi!

Cod