Tutorial git

În acest tutorial se explică modul în care se importă un nou proiect in git, cum se modifică și cum se poate colabora asupra proiectelor.

Este important să te prezinți înainte de a efectua orice operație, lucru care se face astfel:

  • git config –global user.name “Numele Tău”
  • git config –global user.email “Adresa ta de mail”

Importarea unui proiect:

Fie următorul proiect care l-ai creat. Acesta se poate adăuga în git astfel:

  • tar xzf project.tar.gz
  • cd project
  • git init

La rularea ultimei comenzi va apărea în folderul project următorul director ”.git”.
Pentru a importa toate fișierele din folderul project se folosește următoarea comandă:

  • git add .

Momentan aceste fișiere sunt temporar stocate in “index”. Pentru a le adăuga permanent se utilizează:

  • git commit (se va deschide un fișier unde trebuie să fie decomentate evenimentele care se doresc a fi comise în git)

Modificarea proiectelor

Pentru a modifica anumite fișiere se utilizeaza din nou comanda

  • git add file1 file2 file3 (unde file1, file2, file3 sunt noile fișiere)

Pentru a vedea modificările se utilizează:

  • git diff –cached (dacă nu se utilizează –cached atunci sunt menționate schimbările care nu au fost adăugate în index)

Pentru a vedea un rezumat a operațiilor efectuate se folosește:

  • git status

După terminarea efectuării modificărilor se folosește iarăși:

  • git commit

De asemenea în loc de “git add” și “git commit” se poate folosi “git commit -a” care va adăuga automat fișierele modificate.

Istoria unui proiect

Pentru a vedea istoria unui proiect se utilizează următoarea comandă:

  • git log

Pentru a vedea diferențele fiecărui pas se folosește:

  • git log -p

O altă comandă folosită în acest scop este:

  • git log –stat –summary

Gestionarea branșelor

Domeniul principal se numește master. Pentru a crea un nou domeniu se folosește:

  • git branch “Nume Domeniu” (exp: git branch experimental)

Pentru a afișa domeniile se folosește:

  • git branch

Pentru a schimba domeniul se utilizează:

  • git checkout experimental

După ce se revine la master, cele două domenii se pot uni folosind:

  • git merge experimental (în caz că există diferențe între domenii apare un mesaj corespunzător)

Pentru a șterge un domeniu se folosește:

  • git branch -d experimental (se efectuează în cazul în care diferențele sunt în domeniul curent)
  • git branch -D experimental (șterge domeniul fără a actualiza diferențele)

Colaborare

Fie următoarea situație. Andreea are un proiect cu git repository în /home/andreea/project. Alex dorește să contribuie la acest proiect. Pentru a face acest lucru se folosește comanda:

  • git clone /home/alice/project myrepo

Astfel se crează un nou director myrepo cu o copie a proiectului Andreei.
După ce Alex face modificările, le comite(“git commit -a”) și o anunță pe Andreea de modificări, aceasta din urmă folosește următoarele comenzi pentru a salva modificările:

  • cd /home/andreea/project
  • git pull /home/alex/myrepo master

În cazul în care Andreea a făcut schimbări între timp la proiect va trebui să rezolve conflictele manual.
De asemnea Andreea poate inspecta ce a făcut Bob pentru a vedea dacă merită să salveze modificările sale. Acest lucru se face cu un simbol special “FETCH_HEAD”:

  • git fetch /home/alex/myrepo master
  • git log -p HEAD..FETCH_HEAD

În cazul în care Andreea și Alex lucrează împreună des asupra proiectului se poate folosi următoarele comenzi pentru a lucra mai ușor:

  • git remote add alex /home/alex/myrepo
  • git fetch alex

Astfel se creează un domeniu separat în care se memorează modificările aduse de Alex.
Pentru a vedea schimbările aduse se folosește comanda:

  • git log -p master..alex/master

Salvarea modificărilor se face astfel:

  • git merge alex/master

Acest lucru se mai poate face și astfel:

  • git pull . remotes/alex/master

Pentru a actualiza repository-ul Andreei cu ultimile modificări, Alex folosește următoarea sintagmă:

  • git pull

Nu mai e nevoie de toată calea întrucât aceasta a fost memorată prima oară. Această cale se poate vedea astfel:

  • git config –get remote.origin.url

Se poate lucra și de pe alt host astfel:

  • git clone andreea.org:/home/andreea/project myrepo

Exportarea proiectului pe http://swarm.cs.pub.ro/git/

Pentru a salva proiectele pe http://swarm.cs.pub.ro/git se creează următorul folder: $HOME/git-repo, loc unde utilizatorul va crea cate un folderul pentru fiecare proiect. Apoi va crea folderul .git in fiecare proiect.
Dupa parcurgerea acestor pasi proiectele noi vor fi adaugate automat dupa o zi. Orice schimbari aduse unor proiecte deja aflate pe site sunt actualizate automat (doar prima initializare a unui proiect dureaza cel mult o zi in functie de serviciul cron). Pentru adaugare rapida a unui proiect nou se anunta un admin.

Surse

utilizatori/tutorial-git.txt · Last modified: 2011/02/08 15:09 by mcostea
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki