Git nədir? Git istifadə təlimatı (Git Guide)
Git, yazdığımız proqram təminatlarının source kodunu (bəzən documentation, e-kitab və b.) kompüterimizdə və ya hansısa local storage –da deyil, internet üzərində saxlamağımızı və idarə etməyimizi təmin edən bir versiya nəzarət sistemi –dir ( SVN ).
Niyə git?
Versiya nəzarəti: Hər hansı bir proyekti (proqram təminatını) local storage –da saxlayarkən, baş verə biləcək təhlükələrdən qorunmaq üçün davamlı bu proyekti backup etmək məcburiyyətindəyik. Git istifadə edərkən buna ehtiyac qalmır, çünki versiyalama özəlliyi sayəsində istənilən vaxt proyektin dəyişiklər etdiyimiz istənilən hissəsinə çata bilirik.
Bir proyekt üzərində komanda şəklində işləmək: Bir proqram təminatı üzərində bir neçə nəfər eyni zamanda çalışdıqda, kodların birləşdirilməsi, ən son versiyanın müəyyənləşdirilməsi prosesi çox qarışıq və vaxt tələb edən prosesdir. Git vasitəsilə isə buna ehtiyac qalmır.
Offline istifadə ediləbilməsi: Git hər-hansı bir proyekt üzərində çalışarkən onun bir kopyasını local maşında saxlayaraq, internet şəbəkəsi olmadan da proyekt üzərində işləməyə imkan verir.
Git ilə işləyərkən proyektlərimizi saxlamaq üçün ən məşhur servislər GitHub və GitLab –dır.
GitHub: Private şəkildə saxlamaq istyədiyimiz repository –lər üçün ödəniş tələb etsədə, Public Repository –lər üçün pulsuzdur və hal-hazırda ən çox istifadə olunanlardandır. 2008 –ci ildə qurulan Github 2011 –ci ildən etibarən Open Source proyektlər üçün ən çox istifadə olunan servisdir.
GitLab: GitHub –dan fərqli olaraq pulsuz versiyasında öz local serverimizə quraraq, yalnız seçdiyimiz istifadəçilərin çata biləcəyi Git servisi təqdim edir.
Git Arxitekturası:
Git ilə işləyərkən Remote Repository –a push etməzdən öncə local maşınımızda repository –miz yaranır. ($ git init komandası). Biz git init komandasını verdikdən sonra local repository yaranır və proyektimizə git add komandası vasitəsi ilə hər bir faylı (proqram kodu, readme faylı və b.) əlavə etdikdə bunlar staging area adlanan hissədə saxlanılır. Staging area etdiyimiz dəyişikliklər commit olunmadan öncəsinə qədər proyektimizə aid faylların saxlanıldığı hissədir. Daha sonra dəyişiklikləri commit etdikdə proyektimiz local repository bölməsinə keçir və remote repository (GitHub, GitLab) –a göndərilmək (push) üçün hazır olur. git push komandasından sonra proyektimiz remote repository –a kopyalanır.

Git Yüklənməsi
Git Windows, Mac və Linux əməliyyat sistemləri üzərinə çox rahatlıqla yüklənı bilir.
Biz CentOS 7 əməliyyat sisteminə quracağıq:
Debian based Linux əməliyyat sistemləri üçün:
sudo apt-get install gitRed-Hat based Linux əməliyyat sistemləri üçün:
sudo yum install git
Git Komandaları:
$ git config: bu komanda vasitəsilə git istifadəçi adı, və mail əlavə edə bilərik, bunları əlavə etmədən hər hansı bir iş gödükdə default olaraq sistemdəki username təyin olunacaqdır.
git config — global user.name “faganihajizada”
git config — global user.email hacizade.faqani@gmail.com$ git init: init komandası, qovluğu bir Git Repository halına gətirir və .git sonluqlu bir qovluq yaradır. Git init komandası qovluğumuzu uzaqdakı bir serverə (Github, Gitlab və b.) göndərmək üçün hazır vəziyyətə gətirir.
Nümunə üçün bir gitproyektim adlı qovluq yaradıb onu git repository üçün hazır vəziyyətə gətirək:
sudo mkdir gitproyektimcd gitproyektimgit init .

Gördüyümüz kimi boş bir repository yarandı.
$ git add: add komandası hər-hansı bir yeni faylı və ya qovluqdakı bütün faylları əlavə edir, yəni artıq proyektimiz commit –ə hazır olur.
sudo touch salam_dunya.txtgit add salam_dunya.txtgit add *
*simvolu qovluqdakı bütün faylları staging area –ya əlavə edəcəkdir.

$ git clone: clone komandası ilə local –dakı və ya uzaq serverdəki (Github, Gitlab) istənilən reponu kopyasını hazırda olduğumuz qovluğa kopyalayır.
git clone /path/to/repositorygit cloneusername@host:/path/to/repository
$ git rm: Seçdiyimiz faylı silir. məs: git add komandası ilə əlavə etdiyimiz hansısa faylı sonradan silmək istədikdə (commit zamanı server -ə köçürülməsin deyə) istifadə olunur.
$ git commit: Commit local maşınımızda baş verən bir prosesidir və uzaq server –dəki reposiroty -ə heç bir təsir göstərmir. Commit vasitəsilə etdiyimiz dəyişikliklər haqqında açıqlamalar qeyd edirik. Commit proyektimizi staging area -dan local repository bölməsinə keçirir.
git commit –m “proyektin ilk commit –i”
$ git push: Commit –lədiyimiz proyektimizi uzaqdakı server -ə (GitHub, GitLab) göndərmək üçün istifadə olunur.
Bir GitHub repository yaradaraq proyektimizi push edək:


$ git remote add origin <remote repository URL> komandası ilə yaratdığımız repository –ni remote repo kimi təyin edək:
git remote add origin https://github.com/faganihajizada/gitproyektim.git$ git remote –v komandası ilə isə remote repository URL –in həqiqətən dəyişdiyinə əmin ola bilərik
$ git remote add origin master komandası ilə local maşındakı reporsitory –ni remote server -lə (GitHub) əlaqələndirək:
$ git push -u origin master komandası ilə bu dəyişiklikləri GitHub –dakı repository göndərmiş olacağıq.

GitHub hesabımızdakı repository yoxlayaq: Bütün fayllar (kodlar) GitHub repository –dədir.

Git Fork:
Open Source bir proyektdə başqa bir developer –in bizim proqram kodlarına əlavələr (və dəyişikliklər) etmək istədiyi bir situasiyanı düşünək. Bu durumda Git Fork köməyimizə çatır. Nümunəmizdə Komport adlı istifadəçi tərəfindən proyektimizə bir fayl əlavə edilməsi prosesinə baxaraq Git Fork –un necə işlədiyi ilə tanış olaq.
Öncə istifadəçi GitHub üzərindən Repository –zə daxil olaraq fork bölməsinə daxil olur:

Repository fork olunaraq istifadəçinin repository siyahısına əlavə olunur.
Daha sonra bu repository clone edilərək üzərindəki dəyişikliklər əlavə olunur və push edilir:

Push etdikdən sonar dəyişikliklər istifadəçinin GitHub reposunda görsənir. Artıq Pull Request göndərmək olar:

Create pull request bölməsindən dəyişiklikləri göndəririk:


Öz hesabımızdan daxil olaraq Pull request –I Merge edirik:


Artıq Komport tərəfindən göndərilən dəyişikliklər (əlavə olunan filefromkomport.txt) faylı Repository –a əlavə olundu.

Keçidlər:

