This shows you the differences between two versions of the page.
eim:tutoriale:git [2016/02/21 14:11] 127.0.0.1 external edit |
eim:tutoriale:git [2016/02/26 00:53] (current) tmp.andrei.cojocaru created |
||
---|---|---|---|
Line 6: | Line 6: | ||
De regulă, instalarea Git se face prin intermediul utilitarelor de gestiune a pachetelor incluse în distribuția Linux: | De regulă, instalarea Git se face prin intermediul utilitarelor de gestiune a pachetelor incluse în distribuția Linux: | ||
* sisteme de tip Debian/Ubuntu\\ <code> | * sisteme de tip Debian/Ubuntu\\ <code> | ||
- | student@pdsd2015:~$ sudo apt-get install git | + | student@eim2016:~$ sudo apt-get install git |
</code> | </code> | ||
* sisteme de tip Fedora\\ <code> | * sisteme de tip Fedora\\ <code> | ||
- | student@pdsd2015:~$ sudo yum install git | + | student@eim2016:~$ sudo yum install git |
</code> | </code> | ||
- | Versiunea curentă este 1.9.1. | + | Versiunea curentă este 2.1.4. |
==== Windows ==== | ==== Windows ==== | ||
Se poate utiliza un client de tipul [[https://windows.github.com/|GitHub for Windows]], care este disponibil atât sub forma unei versiuni în linie de comandă (preferabil de utilizat) cât și a unei versiuni care conține o interfață grafică cu utilizatorul. | Se poate utiliza un client de tipul [[https://windows.github.com/|GitHub for Windows]], care este disponibil atât sub forma unei versiuni în linie de comandă (preferabil de utilizat) cât și a unei versiuni care conține o interfață grafică cu utilizatorul. | ||
- | Versiunea curentă este 2.9.1.0. | + | Versiunea curentă este 3.0.12. |
===== Crearea unui cont Github ===== | ===== Crearea unui cont Github ===== | ||
- | - se accesează [[http://www.github.com|GitHub]] și se apasă butonul //Sign up for GitHub// completându-se informații precum numele de utilizator, adresa de poștă electronică și parola\\ {{ :eim:tutoriale:git:github01.png?nolink&700 }} | + | **1**. se accesează [[http://www.github.com|GitHub]] și se apasă butonul //Sign up for GitHub// completându-se informații precum numele de utilizator, adresa de poștă electronică și parola\\ {{ :eim:tutoriale:git:github01.png?nolink&700 }} |
- | - se alege planul tarifar implicit, gratuit, care nu oferă posibilitatea de creare de directoare private\\ {{ :eim:tutoriale:git:github02.png?nolink&700 }} | + | **2**. se alege planul tarifar implicit, gratuit, care nu oferă posibilitatea de creare de directoare private\\ {{ :eim:tutoriale:git:github02.png?nolink }} |
- | - în panoul de administrare pot fi accesate mai multe legături către tutoriale pentru familiarizarea cu mediul GitHub; prin apăsarea butonului //New Repository// se poate crea o zonă de lucru corespunzătoare unui proiect\\ {{ :eim:tutoriale:git:github03.png?nolink&700 }} | + | **3**. în panoul de administrare pot fi accesate mai multe legături către tutoriale pentru familiarizarea cu mediul GitHub; prin apăsarea butonului //New Repository// se poate crea o zonă de lucru corespunzătoare unui proiect\\ {{ :eim:tutoriale:git:github03.png?nolink }} |
- | - crearea zonei de lucru implică specificarea unei denumiri, a unei descrieri (opțional), a tipului de director (public sau privat - doar contra cost!!!), a modului de inițializare (local, prin ''git init'' sau la distanță, prin ''git clone'' - ceea ce implică adăugarea unui fișier ''README''), a fișierelor ignorate (corespunzătoare limbajului de programare folosit) și a tipului de licență sub care este publicat codul sursă\\ {{ :eim:tutoriale:git:github04.png?nolink&700 }} | + | **4**. la adresa de poștă electronică specificată, va fi transmisă legătura către pagina Internet pentru confirmarea validității acesteia (se apasă butonul //Confirm//). |
- | + | {{ :eim:tutoriale:git:github04.png?nolink }}\\ | |
- | La adresa de poștă electronică specificată, va fi transmisă legătura către pagina Internet pentru confirmarea validității acesteia (se apasă butonul //Confirm//). | + | {{ :eim:tutoriale:git:github05.png?nolink }}\\ |
- | {{ :eim:tutoriale:git:github05.png?nolink&700 }}\\ | + | {{ :eim:tutoriale:git:github06.png?nolink }} |
- | {{ :eim:tutoriale:git:github06.png?nolink&700 }}\\ | + | **5**. crearea zonei de lucru implică specificarea unei denumiri, a unei descrieri (opțional), a tipului de director (public sau privat - doar contra cost!!!), a modului de inițializare (local, prin ''git init'' sau la distanță, prin ''git clone'' - ceea ce implică adăugarea unui fișier ''README''), a fișierelor ignorate (corespunzătoare limbajului de programare folosit) și a tipului de licență sub care este publicat codul sursă\\ {{ :eim:tutoriale:git:github07.png?nolink }} |
- | {{ :eim:tutoriale:git:github07.png?nolink&700 }} | + | |
===== Configurare ===== | ===== Configurare ===== | ||
Line 43: | Line 42: | ||
Variabilele de configurare cel mai frecvent utilizate sunt: | Variabilele de configurare cel mai frecvent utilizate sunt: | ||
* legate de **identitatea** utilizatorului, importante datorită faptului că sunt incluse (în mod automat) în fiecare operație de consemnare\\ <code> | * legate de **identitatea** utilizatorului, importante datorită faptului că sunt incluse (în mod automat) în fiecare operație de consemnare\\ <code> | ||
- | student@pdsd2015:~$ git config --global user.name "Proiectarea si Dezvoltarea Serviciilor Distribuite 2015" | + | student@eim2016:~$ git config --global user.name "Elemente de Informatica Mobila 2016" |
- | student@pdsd2015:~$ git config --global user.email pdsd2015@andreirosucojocaru.ro | + | student@eim2016:~$ git config --global user.email informaticamobila2016@gmail.com |
</code> | </code> | ||
* legate de **editorul de text** utilizat în mod implicit atunci când este necesară introducerea unui mesaj\\ <code> | * legate de **editorul de text** utilizat în mod implicit atunci când este necesară introducerea unui mesaj\\ <code> | ||
- | student@pdsd2015:~$ git config --global core.editor gedit | + | student@eim2016:~$ git config --global core.editor gedit |
</code> | </code> | ||
* legate de **utilitarul pentru identificarea diferențelor**, utilizat pentru rezolvarea conflictelor\\ <code> | * legate de **utilitarul pentru identificarea diferențelor**, utilizat pentru rezolvarea conflictelor\\ <code> | ||
- | student@pdsd2015:~$ git config --global merge.tool diff | + | student@eim2016:~$ git config --global merge.tool diff |
</code> Valori acceptate sunt: ''vimdiff'', ''kdiff3'', ''tkdiff'', ''meld'', ''xxdiff'', ''emerge'', ''gvimdiff'', ''ecmerge'', ''opendiff'', dar și alte programe dezvoltate de utilizatori în acest scop. | </code> Valori acceptate sunt: ''vimdiff'', ''kdiff3'', ''tkdiff'', ''meld'', ''xxdiff'', ''emerge'', ''gvimdiff'', ''ecmerge'', ''opendiff'', dar și alte programe dezvoltate de utilizatori în acest scop. | ||
* legate de **aspect**: ''color.status'', ''color.branch'', ''color.interactive'', ''color.diff''. | * legate de **aspect**: ''color.status'', ''color.branch'', ''color.interactive'', ''color.diff''. | ||
* legate de **alias-uri** (prescurtări) ale unor comenzi | * legate de **alias-uri** (prescurtări) ale unor comenzi | ||
* git <code> | * git <code> | ||
- | student@pdsd2015:~$ git config --global alias.comm commit | + | student@eim2016:~$ git config --global alias.comm commit |
- | student@pdsd2015:~$ git config --global alias.ustg 'reset HEAD --' | + | student@eim2016:~$ git config --global alias.ustg 'reset HEAD --' |
- | student@pdsd2015:~$ git config --global alias.last 'log -1 HEAD' | + | student@eim2016:~$ git config --global alias.last 'log -1 HEAD' |
</code> | </code> | ||
* externe: trebuie precedate de caracterul ''!'' | * externe: trebuie precedate de caracterul ''!'' | ||
Line 63: | Line 62: | ||
Valorile variabilelor de configurare pot fi verificate prin comanda: | Valorile variabilelor de configurare pot fi verificate prin comanda: | ||
<code> | <code> | ||
- | student@pdsd2015:~$ git config --list | + | student@eim2016:~$ git config --list |
</code> | </code> | ||
<note important>Este posibil ca pentru o variabilă de configurare să fie afișate mai multe valori, în cazul în care acestea se regăsesc simultan în fișierele ''/etc/gitconfig'', ''~/.gitconfig'' respectiv ''.git/config'', situație în care este utilizată ultima valoare întâlnită, prin parcurgerea locațiilor în această ordine.\\ Verificarea valorii utilizate pentru o variabilă de configurare se face prin:<code> | <note important>Este posibil ca pentru o variabilă de configurare să fie afișate mai multe valori, în cazul în care acestea se regăsesc simultan în fișierele ''/etc/gitconfig'', ''~/.gitconfig'' respectiv ''.git/config'', situație în care este utilizată ultima valoare întâlnită, prin parcurgerea locațiilor în această ordine.\\ Verificarea valorii utilizate pentru o variabilă de configurare se face prin:<code> | ||
- | student@pdsd2015:~$ git config {configuration_variable} | + | student@eim2016:~$ git config {configuration_variable} |
</code>De asemenea, poate fi listat conținutul fișierelor de configurare, individual (folosind comanda ''cat'', de exemplu).</note> | </code>De asemenea, poate fi listat conținutul fișierelor de configurare, individual (folosind comanda ''cat'', de exemplu).</note> | ||
Line 72: | Line 71: | ||
Cheile SSH reprezintă un mecanism de identificare a mașinilor autorizate, fără a fi necesare parole. Acestea trebuie asociate în mod obligatoriu contului GitHub. | Cheile SSH reprezintă un mecanism de identificare a mașinilor autorizate, fără a fi necesare parole. Acestea trebuie asociate în mod obligatoriu contului GitHub. | ||
- se verifică dacă pe mașina în cauză există deja chei SSH <code> | - se verifică dacă pe mașina în cauză există deja chei SSH <code> | ||
- | student@pdsd2015:~$ ls -al ~/.ssh | + | student@eim2016:~$ ls -al ~/.ssh |
</code> Dacă sunt listate fișiere de tipul ''id_rsa.pub'' sau ''id_dsa.pub'', acesta pot fi folosite, în caz contrar fiind necesară generarea acestora. | </code> Dacă sunt listate fișiere de tipul ''id_rsa.pub'' sau ''id_dsa.pub'', acesta pot fi folosite, în caz contrar fiind necesară generarea acestora. | ||
- generarea unei chei SSH (plasată în ''~/.ssh/id_rsa'' în mod implicit) se face pe baza unei adrese de poștă electronică, respectiv a unei parole: <code> | - generarea unei chei SSH (plasată în ''~/.ssh/id_rsa'' în mod implicit) se face pe baza unei adrese de poștă electronică, respectiv a unei parole: <code> | ||
- | student@pdsd2015:~$ ssh-keygen -t rsa -C "pdsd2015@andreirosucojocaru.ro" | + | student@eim2016:~$ ssh-keygen -t rsa -C "informaticamobila2016@gmail.com" |
Generating public/private rsa key pair. | Generating public/private rsa key pair. | ||
Enter file in which to save the key (/home/student/.ssh/id_rsa): | Enter file in which to save the key (/home/student/.ssh/id_rsa): | ||
- | Created directory '/home/student/.ssh'. | ||
Enter passphrase (empty for no passphrase): | Enter passphrase (empty for no passphrase): | ||
Enter same passphrase again: | Enter same passphrase again: | ||
Line 84: | Line 82: | ||
Your public key has been saved in /home/student/.ssh/id_rsa.pub. | Your public key has been saved in /home/student/.ssh/id_rsa.pub. | ||
The key fingerprint is: | The key fingerprint is: | ||
- | 84:5c:74:3d:dd:63:34:d5:78:f5:14:c6:97:62:91:c3 pdsd2015@andreirosucojocaru.ro | + | 96:0a:59:ea:17:39:d7:12:98:8a:ee:e9:f7:16:20:ff informaticamobila2016@gmail.com |
</code> | </code> | ||
- cheia SSH generată trebuie indicată daemon-ului ''ssh-agent'': <code> | - cheia SSH generată trebuie indicată daemon-ului ''ssh-agent'': <code> | ||
- | student@pdsd2015:~$ eval "$(ssh-agent -s)" | + | student@eim2016:~$ eval "$(ssh-agent -s)" |
- | Agent pid 6810 | + | Agent pid 4435 |
- | student@pdsd2015:~$ ssh-add ~/.ssh/id_rsa | + | student@eim2016:~$ ssh-add ~/.ssh/id_rsa |
Enter passphrase for /home/student/.ssh/id_rsa: | Enter passphrase for /home/student/.ssh/id_rsa: | ||
Identity added: /home/student/.ssh/id_rsa (/home/student/.ssh/id_rsa) | Identity added: /home/student/.ssh/id_rsa (/home/student/.ssh/id_rsa) | ||
</code> | </code> | ||
- se vizualizează cheia SSH generată (''cat ~/.ssh/id_rsa.pub'') și se asociază contului GitHub | - se vizualizează cheia SSH generată (''cat ~/.ssh/id_rsa.pub'') și se asociază contului GitHub | ||
- | - se accesează tab-ul //Settings//\\ {{ :eim:tutoriale:git:githubssh01.png?nolink&700 }} | + | - se accesează tab-ul //Settings//\\ {{ :eim:tutoriale:git:github08.png?nolink }} |
- | - din meniul afisat, se selectează opțiunea //SSH Keys// și apoi se apasă butonul //Add SSH Key//\\ {{ :eim:tutoriale:git:githubssh02.png?nolink&700 }} | + | - din meniul afisat, se selectează opțiunea //SSH Keys// și apoi se apasă butonul //New SSH Key//\\ {{ :eim:tutoriale:git:github09.png?nolink }} |
- | - se completează câmpurile //Title// (cu o denumire sugestivă a mașinii de pe care se dorește să se realizeze conexiunea) și //Key// (valoarea cheii SSH) și apoi se apasă butonul //Add key//\\ {{ :eim:tutoriale:git:githubssh03.png?nolink&700 }} | + | - se completează câmpurile //Title// (cu o denumire sugestivă a mașinii de pe care se dorește să se realizeze conexiunea) și //Key// (valoarea cheii SSH) și apoi se apasă butonul //Add SSH key//\\ {{ :eim:tutoriale:git:github10.png?nolink }} |
- | - valoarea introdusă va fi afișată în lista de chei SSH asociate contului\\ {{ :eim:tutoriale:git:githubssh04.png?nolink&700 }} | + | - valoarea introdusă va fi afișată în lista de chei SSH asociate contului\\ {{ :eim:tutoriale:git:github11.png?nolink }} |
- verificarea conectivității se face prin accesarea GitHub prin SSH, o configurare corectă fiind indicată de afișarea numelui de utilizator dorit <code> | - verificarea conectivității se face prin accesarea GitHub prin SSH, o configurare corectă fiind indicată de afișarea numelui de utilizator dorit <code> | ||
- | student@pdsd2015:~$ ssh -T git@github.com | + | student@eim2016:~$ ssh -T git@github.com |
- | The authenticity of host 'github.com (192.30.252.131)' can't be established. | + | The authenticity of host 'github.com (192.30.252.129)' can't be established. |
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. | RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. | ||
Are you sure you want to continue connecting (yes/no)? yes | Are you sure you want to continue connecting (yes/no)? yes | ||
- | Warning: Permanently added 'github.com,192.30.252.131' (RSA) to the list of known hosts. | + | Warning: Permanently added 'github.com,192.30.252.129' (RSA) to the list of known hosts. |
- | Hi pdsd2015! You've successfully authenticated, but GitHub does not provide shell access. | + | Hi eim2016! You've successfully authenticated, but GitHub does not provide shell access. |
</code> De asemenea, în lista cheilor SSH asociate contului GitHub, va fi indicată data la care aceasta a fost utilizată cel mai recent. | </code> De asemenea, în lista cheilor SSH asociate contului GitHub, va fi indicată data la care aceasta a fost utilizată cel mai recent. | ||
- |