Cum de a face prima cerere de tragere, site-ul de rugina limbaj de programare
Acest ghid vă va învăța cum să facă schimbări în cadrul proiectului pe GitHub. Procedeul descris aici oferă cea mai bună practică este destul de comună - îl puteți utiliza în afara comunității noastre. În proiecte comunitare de a adera la un astfel de proces este foarte recomandat.
În primul rând, vom da o descriere la nivel înalt a procesului, și apoi să descrie în detaliu fiecare pas.
Se presupune cunoașterea elementele de bază ale sistemului de control al versiunii Git. Dacă nu ați lucrat cu Git, vom da link-uri către documentația de limbă rusă oficială pentru comenzile necesare.
Aici este procesul în vederea șopârliță.
- Proiectul Forknite.
- depozit Skloniruyte.
- Creați o ramură pentru activitatea sa.
- Faceți modificările necesare aduse fișierelor - cod, documentare, testare. le Zakommitte la ramura nou creată.
- Asigurați-vă că proiectul funcționează după modificările.
- Asigurați-Pull Cerere.
- Discutați cu examinatorul în timpul revizuirii Codului. Dacă este necesar, efectuați modificări în solicitarea de tragere.
- Când toată lumea este fericit, Pull Cerere ia - din acest moment modificările au fost în depozitul original (în amonte) și fac parte din proiect.
Lucrările la sarcina este terminat!
Acum, uita-te la fiecare pas în detaliu.
proiectul forkan
Nu puteți trimite un commit (Git împinge) direct la magazia sursă. La cererea titularului de proiect poate permite acest lucru, dar a scrie accesul este numai pentru persoanele care susțin proiectul, și toate celelalte lucrări prin Pull Request'y de obicei ( „cererile de modificare de perfuzie“, despre ei - de mai jos).
Într-un moment, veți fi redirecționat către pagina de furculita.
clona depozit
Apoi, aveți nevoie pentru a clona magazia la mașina locală. Pentru a face acest lucru avem nevoie de o adresă URL depozit. Făcând clic pe butonul din dreapta, pe care îl copiați în clipboard. Să acorde o atenție la stânga protocolul selectat. Dacă nu ați configurat SSH la GitHub, trebuie să fie specificate HTTPS.
Apoi rulați comanda într-un terminal (sau un prompt de comandă pentru Windows):
clona git <вставляем_URL>
Skloniruetsya depozit într-un sub-director al directorului curent. De exemplu, în cazul în care un depozit numit foobar. va avea directorul foobar.
a crea un fir
ramură implicit - maestru. Pentru a schimba mai ușor de gestionat și nu se amestecă unele cu altele, de a crea o ramură separată, unde se va lucra. În acest caz, sucursala ar trebui să fie numit, astfel încât numele vorbește despre numirea ei.
De exemplu, vrem să corecteze o greșeală în protocolul de punere în aplicare PROTOBAZ. astfel că filiala noastră se numește fix-protobaz.
Acum am ajuns la panta noastră un depozit și crearea unei sucursale:
Această comandă trebuie să vă amintiți - atunci când nu cunosc starea magaziei, doar o fac. Cea mai mare parte din producția Git reprezintă alte echipe sale, care fac ceea ce esti (cel mai probabil) și doriți să faceți.
Facem modificări
Acum vom începe să lucreze. Editați codul, actualizați documentația, vom repara de testare pentru a completa README.
Aceste schimbări ne angajează în ramura noastră. Cum de a face acest lucru - de mai jos.
În același timp, încearcă să facă de multe ori se angajeze și să se angajeze ele însele - mici în volum. Fiecare se angajează să facă exact un singur lucru și, în același timp, pentru a menține starea de sănătate a proiectului. Trebuie să ne străduim să ne asigurăm că puteți merge la orice comite și de a obține un proiect de lucru în viitor.
Dacă pur și simplu nu ajunge să rămânem la o astfel de disciplină, sau modificări afectează întregul proiect, „prin“, este permis să se rupă proiectul și, treptat, fixați-l în următoarea comite.
Dacă sunteți deja versat în Git, atunci ai nevoie pentru a combina aceste schimbări non-atomice într-un singur comite folosind rebase interactiv și suc de fructe.
Deci, după editarea fișierului, avem următoarea situație (această concluzie, starea git):
Dintre toate părțile mesajului, doar primul este obligatoriu.
Acesta trebuie să aibă forma <Глагол в настоящем времени, первом лице, множественном числе> <объект изменения>. Este vorba despre ceea ce facem în această comit: [noi] bug fixat, [am] adăuga capacități, [ne] sunt actualizarea documentației.
Ultima linie - este o echipă de GitHub. Atunci când comite cu o astfel de echipa ajunge să stăpânească. GitHub va închide automat sarcina specificată. Puteți utiliza diferite forme de această comandă: Fix # 123. stabilește # 123. aproape # 123 și altele. Acest lucru economisește timp pentru susținerea proiectului.
În proiectele noastre, trebuie să utilizați Fix # 123 sau 123 Închide # pe ultima linie comite mesaj.
git log --oneline afișează istoria în formatul „1 comentarii - 1 linie pe ecran.“ În același timp, se folosește ca o descriere a primei linii a comite - o scurtă descriere. Prin urmare, acesta trebuie să fie în mod necesar separate printr-o linie goală de restul descrierii - sau a unui singur dispersat pentru retragere.
Limba mesajului se angajează trebuie să respecte limba acceptată a proiectului. Pe măsură ce proiectele noastre sunt axate pe publicul vorbitor de limbă rusă și dezvoltatorii spun în limba rusă, mesajul ar trebui să se angajeze să fie, de asemenea, în limba rusă.
verificarea modificărilor
Când ați terminat de editat, este necesar pentru a le testa - cu excepția cazului în ceva absolut banal.
Pentru a face acest lucru, aveți nevoie pentru a construi proiectul și rula teste, în cazul în care acestea există. În orice caz, este necesar pentru a testa codul pe care le-ați scris sau modificat prin rularea unui program sau prin apelarea la bibliotecă.
În cazul în care proiectul - un site static generat, trebuie să-l genereze la nivel local și asigurați-vă că nimic nu a căzut, iar aspectul nu este despărțit. În cazul în care cartea - același lucru. Uita-te pentru cel puțin acele locuri pe care ai dreptate.
Creați o cerere Pull
Când ați terminat lucrul și verificat, este timpul pentru a crea o cerere de tragere. Trage Cerere - o cerere pentru o infuzie de modificările de ramură în depozitul de sursă ramura principală. Astfel, ei se încadrează la proprietarii proiectului.
Pentru a crea o cerere Pull, zaydom o pagină de pe furculita. Chiar din meniul drop-down cu o alegere de ramură are «cerere de tragere nou» buton.
Vă aflați într-o fereastră de comparație ramură.
Aici sunt elementele acestei ferestre, în ordine:
După apăsarea butonului, ecranul de introducere a mesajului Pull Solicitare.
Mesaj PR - este o descriere a ceea ce a fost făcut și de ce. În contrast cu mesajul comite aici au deja să scrie o descriere la nivel înalt a ceea ce sunt făcute schimbări. Ca parte a „de ce“, precum și formatul mesajului - este necesar să se respecte aceleași reguli ca și în cazul commit. antet scurt (Titlu), în Comentariu - descriere, și apoi informațiile de serviciu (Fix # 100500). Dacă ai scris echipa se angajează să închidă sarcinilor, pe care nu le poate duplica. Dacă nu - scrie aici.
Apoi faceți clic pe «Creați trage cerere». Acesta este creat, este vorba de avizul de oameni care susțin proiectul, și devine vizibil în depozitul de la sursă «Pull cererile» fila. despre examinarea modificărilor (cod de revizuire) pornește de la acest moment.
Sfat: dacă imediat după ce trimite în filiala depozit (Git origine împinge) du-te la pagina depozitului, există o propunere de a crea o cerere Trageți ramura de perfuzie trimis recent la master. Puteți face acest lucru în furcă și în depozitul inițial. Acesta va fi un buton separat pe partea de sus, iar atunci când este apăsat ca o ramură pentru fuziunea va fi precizat că în cazul în care comanda git împinge.
Noi participăm la Codul de revizuire
În această etapă, persoanele care susțin proiectul, uita-te la tine Pull Cerere făcute și discutați-l cu tine. Poate că unele lucruri vor trebui să corecteze, pentru a îmbunătăți, sau termina în procesul de revizuire - acest lucru nu este nimic neobișnuit, și nu înseamnă că ești o treabă proastă.
În comunitatea noastră nu sunt făcute pentru a rula în începători, și încercăm întotdeauna să ajute. Nu fi puse în afara de revizuire - scris mai sus, o mulțime de cuvinte, dar, de fapt suficient doar să se comporte în mod adecvat și să nu ciocan corecțiile.
Atunci când această etapă este finalizată, examinatorul face clic pe butonul «Îmbinare Pull cererea». Modificările au fost infuzată în magazia principală a proiectului.
Felicitări! Acum sunteți un participant cu drepturi depline în proiect.
închidere
După perfuzia de PR trebuie să fie pus ordine în depozit. În cazul în care modificările sunt auto-suficiente, după PR nu este obligat să continue să lucreze, ar trebui să elimine ramura. După cum vă amintiți, am creat mai devreme, pentru a face mai ușor de a gestiona schimbarea.
Dar, mai întâi este mai bine pentru a face upgrade local de master-ramura - apoi git pentru a vă asigura că sucursala dvs. a turnat deja în maestru. și nu vă va avertiza că s-ar putea pierde modificările.
Deci, am actualizat copia noastră de lucru locale. Pentru a face acest lucru, se adaugă o altă telecomandă - așa-numitul depozit la distanță. Acum ai avea doar un singur - origine. și puncte de la furculița. Adăugați nume de la distanță în amonte. care va indica magazia sursa:
Acum avem un depozit curat, actualizat. Puteți începe să lucreze la un nou PR.
Dacă ai ceva care nu a fost făcut sau în scris nu este clar - scrie despre aceasta în chat-ul sau de a crea probleme în depozitul nostru.
Dacă în orice moment există erori - do starea Git. Foarte des se sugerează git ce se poate face și cum să o facă. Dacă încă nu au de lucru - vă rugăm să contactați chat-ul poate ajuta.
Aceste întrebări pot fi adresate în chat-ul, și în viitor vom încerca să scrie un manual și pe aceste teme.
Bine ai comite, chiar dacă proiectul se întâmplă și testele trec. Trimite Request'y Trageți!
Suport pe Patreon