În călătoria mea către open source am dat de o situație simplă (dar dificilă) care te poate împiedica dacă o faci greșit. Și despre asta vom discuta în acest articol.

Participarea la comunitatea open source înseamnă că contribuiți la dezvoltarea de software gratuit sau open source. Există multe organizații care primesc întotdeauna contribuții la bazele lor de coduri.

Pentru a începe cu open source, trebuie să aveți o înțelegere de bază a instrumentelor de control al versiunilor, cum ar fi Git. Contribuitorii folosesc Git pentru a urmări modificările din fișierele de proiect și, de asemenea, îi ajută pe oameni să își coordoneze munca în aceste fișiere.

Condiții prealabile

  1. Avea Git instalat
  2. Înțelegeți de bază Git

De ce probleme?

Cum sa comutati intre probleme in depozitul dvs local Git

Problemele dintr-un depozit pot fi utilizate pentru a urmări sarcinile, ideile, erorile sau îmbunătățirile pentru proiectul la care lucrați. Practic, acestea vă oferă o descriere a ceea ce presupune sarcina.

Pentru a aborda o problemă, administratorii de proiect trebuie să vă atribuie problema respectivă. În acest fel, alți membri ai echipei vor ști că cineva lucrează la această problemă.

Se lucrează la o problemă

Pentru a începe să lucrați la o problemă, trebuie să creați o clonă sau o copie a depozitului țintă utilizând comanda de clonare Git de pe mașina dvs. locală.

git clone <url of repository>

Creați un upstream care vă permite să urmăriți cele mai recente modificări în amonte (adică depozitul original). În acest fel, Git vă ține informat când sunt modificări, astfel încât să puteți actualiza depozitul clonat.

git remote add upstream <url of the original repository>

Pentru a previzualiza lista telecomenzii disponibile și a sarcinilor care pot fi efectuate (preluați și apăsați) tastați:

git remote -v

Pentru a fi la curent cu cele mai recente modificări, trebuie întotdeauna să încercați să preluați din amonte. În acest fel veți obține toate angajamentele de la fiecare membru al echipei care a lucrat și la diverse funcții.

git fetch <upstream>/<master>

Pentru a merge mai departe, va trebui să îmbinați angajamentele altor colaboratori în depozitul local.

git merge <upstream>/<master>

Scopul îmbinării Git este de a face ca copia locală a ramurii master să se potrivească exact cu copia din amonte a ramurii master.

Apoi, creați o ramură pentru problema care vi s-a atribuit. De ce trebuie să creați o sucursală? Și pentru ce se folosește o ramură? Să cercetăm mai departe.

Ramură Git

O ramură vă oferă un instantaneu al modificărilor care au fost făcute. Când se face un commit, Git stochează informațiile din commit. Acesta oferă un pointer care poate fi folosit ulterior pentru referința sau urmărirea modificărilor care au fost făcute. Acesta este motivul pentru care este util să creați o ramură atunci când lucrați la o nouă sarcină, remedierea erorilor sau orice altă caracteristică.

Când începem, Git ne oferă o ramură principală. Ramura principală conține cod de lucru. Pentru a evita amestecarea modificărilor dvs. cu codul de producție, trebuie să creați o nouă ramură.

Pentru a crea o ramură, trebuie să introduceți următoarea comandă Git:

git checkout -b <descriptive-branch-name>

Această comandă creează o ramură nouă bazată pe ramura curentă, deși puteți specifica și ramura în care doriți să creați noua ramură.

git checkout -b <descriptive-branch-name> <target-branch-name>

Pentru a lista toate ramurile disponibile în depozitul dvs., tastați:

git branch

Când sarcina la care lucrați a fost finalizată, împingeți modificările în depozitul local pentru revizuire. După aceea, creați o cerere de extragere pentru a notifica administratorii de proiect cu privire la starea curentă a sarcinii atribuite.

git push -u origin <descriptive-branch-name>

Acum, cum trec la lucrarea următoarei ediții?

Creați o ramură diferită cu un nume descriptiv, astfel:

git checkout -b <descriptive-branch-name> <target-branch-name>

Odată ce avem filiala noastră, vom folosi o comandă de utilitate de la hub. Comanda ne va ajuta să preluăm cod din amonte și va rula, de asemenea, îmbinarea (dacă instalați fișierul utilitar hub).

hub sync

Comanda preia modificările din amonte și le îmbină cu ramura nou creată. Puteți verifica întotdeauna modificările cu sucursala și în amonte folosind comanda de stare Git:

git status

Acum puteți continua și lucra la noua ramură. Nu uitați să comiteți modificările și să împingeți la ramura la distanță, așa cum am făcut mai sus.

Greșeli pe care le-ați putea face.

S-ar putea să faceți o greșeală în timp ce lucrați la mai multe probleme – ceea ce poate duce la ștergerea confirmărilor dintr-o sucursală.

Iată un exemplu de prezentare a ceea ce se poate face pentru a șterge comiterile nedorite dintr-o sucursală:

Pasul 1: Treceți la sucursala unde doriți să eliminați comiterile nedorite:

git checkout <descriptive-branch-name>

Pasul 2: Rulați înregistrările comitetelor efectuate la sucursală. Acest lucru vă va ajuta să decideți ce angajamente doriți să păstrați pe baza unicului Commit Hash (Suma de verificare SHA1 40 de caractere a conținutului de comitere) de obicei în această formă: da034f6ff3e856b5ba155bc01def0847a1c4ed7e.

git log

De asemenea, merită menționat faptul că, dacă doriți să păstrați cea mai recentă confirmare (spuneți ultima), puteți pur și simplu să faceți acest lucru:

git log -n 1

Pasul 3: De vreme ce doriți să renunțați la toate celelalte confirmări pe acea ramură, pur și simplu aplicați acea singură validare la ramură. Aruncați și aplicați sunt doi pași:

Mai întâi, renunțați la toate angajamentele de pe sucursală cu:

git reset --hard <upstream>/<master>

În termeni simpli, comanda de mai sus îi spune lui Git să arunce toate modificările etapizate și ne-etapizate. Va uita totul de pe filiala locală actuală și o va face exact la fel ca upstream/master.

În al doilea rând, aplicați un singur commit la ramură cu comanda:

git cherry-pick Hash

//where Hash is a commit hash from other branch

Această comandă alege în mod implicit o singură referință (adică commit) dintr-o ramură și o aplică alteia.

Pasul 4: Când alergi git status va raporta că filiala dvs. <origin>/<descriptive-branch-name> divergent. Deoarece este de așteptat, trebuie să forțăm telecomanda să conțină doar acele modificări pe care le-am ales.

Pentru a face acest lucru, trebuie să folosim o comandă pentru a ajuta la ștergerea istoricului la distanță și înlocuirea acestuia cu un alt istoric:

git push --force origin

Această comandă va renunța la comisioanele suplimentare de pe telecomandă, la fel cum am renunțat la comisioanele suplimentare de pe copia locală. Acest lucru este periculos, deoarece este una dintre puținele comenzi git care vor arunca ceva – așa că aveți grijă când îl utilizați.

Acum, când alergi git status raportează că sucursala este la zi <origin>/<descriptive-branch-name>. Aceasta vă arată că operațiunea a fost efectuată cu succes.

Îți mulțumesc că ai citit?! Strigăt mare către Mark Waite?

Urmează-mă pe mine stare de nervozitate.