Intrări necesare:
- Citiți, urmăriți și înțelegeți articolul meu despre Git . Acest lucru vă va ajuta să vă asigurați că totul este configurat și gata de funcționare.
- Instalați IntelliJ IDEA.
- Alocați o oră de timp personal pentru a obține o stăpânire completă.
Clonează proiectul la nivel local
Există două opțiuni aici:- Dacă aveți deja un cont GitHub și doriți să împingeți ceva mai târziu, este mai bine să forkați proiectul și să vă clonați propria copie.
- Clonează-mi depozitul și fac totul la nivel local, fără a avea capacitatea de a împinge totul pe server. La urma urmei, acesta este depozitul meu :)
-
Copiați adresa proiectului:
-
Deschideți IntelliJ IDEA și selectați „Obțineți de la Controlul versiunii”:
-
Copiați și lipiți adresa proiectului:
-
Vi se va solicita să creați un proiect IntelliJ IDEA. Accepta oferta:
-
Deoarece nu există un sistem de construcție și asta depășește domeniul de aplicare al acestui articol, selectăm Creare proiect din surse existente :
-
În continuare veți vedea acest ecran frumos: Acum că ne-am dat seama de clonare, puteți arunca o privire în jur.
Prima vedere la IntelliJ IDEA ca interfață de utilizare Git
Aruncați o privire mai atentă la proiectul clonat: puteți obține deja o mulțime de informații despre sistemul de control al versiunilor. În primul rând, avem panoul Control versiuni în colțul din stânga jos. Aici puteți găsi toate modificările locale și puteți obține o listă de commit-uri (analog cu „git log”). Să trecem la o discuție despre Log . Există o anumită vizualizare care ne ajută să înțelegem exact cum a decurs dezvoltarea. De exemplu, puteți vedea că o nouă ramură a fost creată cu un antet adăugat la txt commit, care a fost apoi îmbinat în ramura principală. Dacă dați clic pe un commit, puteți vedea în colțul din dreapta toate informațiile despre commit: toate modificările și metadatele acestuia.Mai mult, puteți vedea modificările reale. Vedem și că acolo s-a rezolvat un conflict. IDEA prezintă și acest lucru foarte bine. Dacă faceți dublu clic pe fișierul care a fost modificat în timpul acestei comiteri, vom vedea cum a fost rezolvat conflictul: Remarcăm că în stânga și în dreapta avem cele două versiuni ale aceluiași fișier care trebuiau îmbinate într-una singură. Și la mijloc, avem rezultatul final combinat. Când un proiect are multe ramuri, comite-uri și utilizatori, trebuie să căutați separat după ramură, utilizator și dată: ultimul lucru pe care vreau să-l explic înainte de a începe este cum să înțelegem în ce ramură ne aflăm. Vă voi oferi un minut să-l dai seama... L-ai găsit? Renunța? :D În colțul din dreapta jos, există un buton etichetat Git: master. Orice urmează „Git:” este ramura curentă. Dacă faceți clic pe butonul, puteți face o mulțime de lucruri utile: treceți la o altă ramură, creați una nouă, redenumiți una existentă și așa mai departe.Lucrul cu un depozit
Taste rapide utile
Pentru lucrări viitoare, trebuie să vă amintiți câteva taste rapide foarte utile:- CTRL+T — Obțineți cele mai recente modificări din depozitul de la distanță (git pull).
- CTRL+K — Creați un commit / vedeți toate modificările curente. Aceasta include atât fișierele neurmărite, cât și cele modificate (vezi articolul meu despre git, care explică acest lucru) (git commit).
- CTRL+SHIFT+K — Aceasta este comanda pentru introducerea modificărilor în depozitul de la distanță. Toate commit-urile create local și care nu sunt încă în depozitul de la distanță vor fi împins (git push).
- ALT+CTRL+Z — Rollback modificările dintr-un anumit fișier la starea ultimei comitere create în depozitul local. Dacă selectați întregul proiect în colțul din stânga sus, puteți anula modificările din toate fișierele.
Ce vrem noi?
Pentru a termina munca, trebuie să stăpânim un scenariu de bază care este folosit peste tot. Obiectivul este de a implementa o nouă funcționalitate într-o ramură separată și apoi de a o împinge într-un depozit de la distanță (atunci trebuie să creați și o cerere de extragere în ramura principală, dar asta depășește scopul acestui articol). Ce este necesar pentru a face asta?-
Obțineți toate modificările curente în ramura principală (de exemplu, „master”).
-
Din această ramură principală, creați o ramură separată pentru munca dvs.
-
Implementați noua funcționalitate.
-
Mergeți la filiala principală și verificați dacă au existat modificări noi în timp ce lucram. Dacă nu, atunci totul este în regulă. Dar dacă au existat modificări, atunci facem următoarele: mergeți la ramura de lucru și rebazați modificările de la ramura principală la a noastră. Dacă totul merge bine, atunci grozav. Dar este cu totul posibil să apară conflicte. După cum se întâmplă, pot fi rezolvate în avans, fără a pierde timp în depozitul de la distanță.
Te întrebi de ce ar trebui să faci asta? Sunt bune maniere și previne apariția conflictelor după ce vă împingeți ramura către depozitul local (există, desigur, posibilitatea ca conflictele să apară în continuare, dar devine mult mai mică ).
- Introduceți modificările în depozitul de la distanță.
Obțineți modificări de la serverul de la distanță?
Am adăugat o descriere la README cu un nou commit și vreau să obțin aceste modificări. Dacă s-au făcut modificări atât în depozitul local, cât și în cel la distanță, atunci suntem invitați să alegem între o îmbinare și o rebase. Alegem să unim. Introduceți CTRL+T : Acum puteți vedea cum s-a schimbat README, adică au fost introduse modificările din depozitul de la distanță, iar în colțul din dreapta jos puteți vedea toate detaliile modificărilor care au venit de la server.Creați o nouă ramură bazată pe master
Totul este simplu aici.-
Mergeți în colțul din dreapta jos și faceți clic pe Git: master . Selectați + Filială nouă .
Lăsați caseta de selectare Checkout branch selectată și introduceți numele noii filiale. Pentru mine, va fi readme-improver .
Git: master se va schimba apoi în Git: readme-improver .
Să simulăm lucrul paralel
Pentru a apărea conflicte, cineva trebuie să le creeze :D Voi edita README-ul cu un nou commit prin browser, simulând astfel munca paralelă. Este ca și cum cineva a făcut modificări în același fișier în timp ce lucram la el. Rezultatul va fi un conflict. Voi elimina cuvântul „fully” din rândul 10.Implementați funcționalitatea noastră
Sarcina noastră este să schimbăm README și să adăugăm o descriere noului articol. Adică, munca în Git trece prin IntelliJ IDEA. Adăugați acest lucru: modificările sunt finalizate. Acum putem crea un commit. Apăsați CTRL+K , ceea ce ne oferă: Înainte de a crea un commit, trebuie să aruncăm o privire atentă la ceea ce oferă această fereastră. Am adăugat săgeți roșii pentru a vă arăta unde să căutați. Sunt o mulțime de lucruri interesante aici. În secțiunea Commit Message , scriem text asociat cu commit-ul. Apoi, pentru a-l crea, trebuie să facem clic pe Commit. Încă nu am aflat cum să fac asta cu o tastă rapidă. Dacă cineva află cum, vă rog să-mi scrieți - asta m-ar face foarte fericit. Scriem că README s-a schimbat și creăm commit-ul. În colțul din stânga jos apare o alertă cu numele comiterii:Verificați dacă ramura principală s-a schimbat
Ne-am îndeplinit sarcina. Funcționează. Am scris teste. Totul e bine. Dar înainte de a apăsa pe server, trebuie să verificăm dacă au existat modificări în ramura principală între timp. Cum s-ar putea întâmpla asta? Destul de ușor: cineva primește o sarcină după tine și acel cineva o termină mai repede decât îți termini tu sarcina. Deci trebuie să mergem la filiala principală. Pentru a face acest lucru, trebuie să facem ceea ce este afișat în colțul din dreapta jos în captura de ecran de mai jos: În ramura principală, apăsați CTRL+T pentru a obține cele mai recente modificări de la serverul de la distanță. Privind care sunt modificările, puteți vedea cu ușurință ce s-a întâmplat:Cuvântul „fully” a fost eliminat. Poate cineva de la marketing a decis că nu trebuie scris așa și a dat dezvoltatorilor sarcina de a-l actualiza. Acum avem o copie locală a celei mai recente versiuni a ramului principal. Reveniți la readme-improver . Acum trebuie să rebazăm modificările de la ramura principală la a noastră. Facem asta: Dacă ați făcut totul corect și ați urmat împreună cu mine, rezultatul ar trebui să arate un conflict în fișierul README: Aici avem și o mulțime de informații de înțeles și de absorbit. Afișată aici este o listă de fișiere (în cazul nostru, un fișier) care au conflicte. Putem alege dintre trei variante:- accept-l pe al tău — acceptă numai modificările din readme-improver.
- acceptă-le pe ale lor — acceptă doar schimbările de la stăpân.
- îmbinare — alege-te ce vrei să păstrezi și ce să renunți.
- Acestea sunt modificările de la readme-improver.
- Rezultatul îmbinat. Deocamdată, este ceea ce exista înainte de schimbări.
- Schimbările din ramura master.
GO TO FULL VERSION