Acest ghid detaliază procesul de lucru cu branch-uri și pull request-uri pentru colaborarea eficientă pe proiectul nostru "Weather App". Este destinat colegilor care folosesc GitHub Desktop, dar include și comenzi bash pentru utilizatorii de Visual Studio Code (VSCode). Ghidul acoperă crearea de branch-uri, realizarea modificărilor, sincronizarea codului și gestionarea pull request-urilor, asigurând o colaborare fluidă și coerentă.
-
Deschide GitHub Desktop:
- Asigură-te că ai clonat repository-ul proiectului pe calculatorul tău.
-
Crează un nou branch:
- În GitHub Desktop, apasă pe meniul din partea stângă sus unde scrie numele
branch-ului curent (de obicei
main
saumaster
). - Selectează
New Branch
. - Denumește branch-ul descriptiv, de exemplu:
feature/add-weather-component
. - Apasă pe
Create Branch
.
- În GitHub Desktop, apasă pe meniul din partea stângă sus unde scrie numele
branch-ului curent (de obicei
-
Realizează modificările:
- Editează fișierele necesare în editorul tău preferat. Adaugă comentarii detaliate în cod pentru a explica modificările, astfel încât colegii să înțeleagă contextul.
-
Commit și push:
- După ce ai realizat modificările, în GitHub Desktop, apasă pe
Commit to <branch name>
. - Scrie un mesaj de commit clar și descriptiv, de exemplu:
Added weather component with basic functionality
. - Apasă pe
Push origin
.
- După ce ai realizat modificările, în GitHub Desktop, apasă pe
-
Deschide VSCode și terminalul integrat:
- Asigură-te că ai clonat repository-ul proiectului și ai deschis folderul în VSCode.
- Deschide terminalul integrat cu
Ctrl + \`` sau navigând la
View > Terminal`.
-
Crează un nou branch:
git checkout -b feature/add-weather-component
git checkout -b feature/add-weather-component
: Creează un nou branch denumitfeature/add-weather-component
și comută pe acel branch.
-
Realizează modificările:
- Editează fișierele necesare și adaugă comentarii detaliate în cod.
-
Commit și push:
git add .
git add .
: Adaugă toate fișierele modificate pentru commit.
git commit -m "Added weather component with basic functionality"
git commit -m "Added weather component with basic functionality"
: Creează un commit cu mesajul specificat.
git push origin feature/add-weather-component
git push origin feature/add-weather-component
: Trimite modificările către repository-ul remote pe branch-ul creat.
-
Actualizează branch-ul principal:
- Înainte de a lucra pe branch-ul tău, este bine să te asiguri că ai ultima
versiune a branch-ului principal (
main
saumaster
).
GitHub Desktop:
- Selectează branch-ul
main
. - Apasă pe
Fetch origin
pentru a aduce cele mai recente modificări din repository-ul remote. - Apasă pe
Pull origin
pentru a integra aceste modificări local.
VSCode:
git checkout main git pull origin main
git checkout main
: Comută pe branch-ulmain
.git pull origin main
: Actualizează branch-ulmain
cu ultimele modificări din repository-ul remote.
- Înainte de a lucra pe branch-ul tău, este bine să te asiguri că ai ultima
versiune a branch-ului principal (
-
Actualizează branch-ul tău cu ultimele modificări din branch-ul principal:
- Este important să faci acest lucru pentru a evita conflictele la pull request.
GitHub Desktop:
- Selectează branch-ul tău.
- Apasă pe
Branch
în meniul de sus și selecteazăMerge into current branch...
. - Selectează
main
pentru a aduce modificările din branch-ul principal în branch-ul tău.
VSCode:
git checkout feature/add-weather-component git merge main
git checkout feature/add-weather-component
: Comută pe branch-ul tău.git merge main
: Integrează modificările din branch-ulmain
în branch-ul tău.
-
Rezolvarea conflictelor:
- Dacă apar conflicte, GitHub Desktop și VSCode îți vor arăta fișierele afectate. Editează manual fișierele pentru a rezolva conflictele.
- După rezolvarea conflictelor, marchează fișierele ca rezolvate și finalizează merge-ul.
GitHub Desktop:
- Selectează
Mark as resolved
pentru fișierele editate. - Apasă pe
Commit merge
.
VSCode:
git add . git commit -m "Resolved merge conflicts"
-
Crează un Pull Request (PR):
- După ce ai terminat modificările pe branch-ul tău și ai sincronizat cu branch-ul principal, este timpul să creezi un PR.
GitHub Desktop:
- Apasă pe
Create Pull Request
în GitHub Desktop sau deschide repository-ul pe GitHub și apasă peNew Pull Request
. - Asigură-te că base branch este
main
și compare branch este branch-ul tău. - Completează descrierea PR-ului, explicând clar ce modificări ai făcut și de ce.
- Apasă pe
Create Pull Request
.
GitHub Website:
- Navighează la repository-ul tău pe GitHub.
- Apasă pe
Pull Requests
și apoi peNew Pull Request
. - Selectează branch-ul tău și completează descrierea PR-ului.
- Apasă pe
Create Pull Request
.
-
Revizuirea și actualizarea PR-ului:
- Alți membri ai echipei vor revizui PR-ul și pot lăsa comentarii sau cereri de modificare.
- Dacă este necesar să faci modificări suplimentare, actualizează branch-ul tău și împinge modificările.
GitHub Desktop:
- Fă modificările necesare.
- Commit și push la fel ca înainte.
VSCode:
git add . git commit -m "Made requested changes" git push origin feature/add-weather-component
-
Fetch și Pull:
- Dacă cineva a făcut un pull request și a fost integrat în branch-ul principal, trebuie să aduci aceste modificări în branch-ul tău.
GitHub Desktop:
- Asigură-te că ești pe branch-ul
main
. - Apasă pe
Fetch origin
și apoi pePull origin
. - Mergi înapoi la branch-ul tău și adu modificările din
main
prinMerge into current branch...
.
VSCode:
git checkout main git pull origin main git checkout feature/add-weather-component git merge main
-
Gestionarea codului propriu în timpul unui fetch/pull:
- Nu îți vei pierde codul propriu în timpul unui fetch sau pull, dar este posibil să apară conflicte dacă codul tău și codul integrat modifică aceleași părți ale fișierelor.
- În cazul unui conflict, Git te va anunța și va trebui să rezolvi manual conflictele înainte de a continua.
Comentariile în cod sunt esențiale pentru a ajuta colegii să înțeleagă ce ai făcut și de ce. Iată câteva exemple:
// Funcția care obține datele meteo pentru un oraș specific
async function getWeatherByCityName(city) {
try {
const url = `${BASE_URL}/weather?q=${city}&appid=${API_KEY}&units=metric`;
return await fetchFromAPI(url);
} catch (error) {
console.error(`Error getting weather by city name "${city}":`, error);
throw error;
}
}
// Afișează datele meteo pentru orașul specificat în UI
function displayWeatherData(data) {
// Exemplu: actualizează elementul HTML cu temperatura
document.getElementById('temperature').innerText = `${data.main.temp}°C`;
}
- Crearea fișierelor:
- Creează un fișier HTML,
un fișier JS și un fișier SCSS pentru noua componentă, de exemplu:
new-component.html
, new-component.js
, new-component.scss
.
-
Includerea fișierelor în
index.html
:- Adaugă următoarele linii în
index.html
pentru a include componenta ta:
<include src="./partials/new-component.html"></include>
- Adaugă următoarele linii în
-
Includerea fișierelor în
index.css
:- Importă fișierul SCSS în
index.css
:
@import './sass/new-component.scss';
- Importă fișierul SCSS în
-
Includerea fișierelor în
index.js
:- Importă și inițializează componenta în
index.js
:
import { initializeNewComponent } from './partials/new-component.js'; document.addEventListener('DOMContentLoaded', async () => { initializeSearch(); initializeWeatherCard(); initializeNewComponent(); // Inițializează noua componentă });
- Importă și inițializează componenta în
-
Commit și PR:
- După ce ai realizat modificările și le-ai testat, realizează commit-ul și trimite un pull request urmând pașii menționați anterior.