GİT KULLANIMI

1.Git neden gereklidir?

Bir dosya üzerinde çalışırken dosya üzerinde (Word, excel, python veya powerpoint dosyası gibi…) değişiklik yapmak istediğimizde ama değişiklik yapmadan önceki halini de korumak istediğimizde dosyayı farklı adlarla (tezson1.doc, tezson2.doc, tezson3.doc vb…) kaydederiz. Fakat bu durum bilgisayarımızda çok fazla dosya birikmesine sebep olur. Bunun önüne geçmek için Versiyon Kontrol Sistemleri kullanılır.

Ayrıca Versiyon Kontrol Sistemleri aynı dosya üzerinde farklı kişilerin çalışmasına olanak tanır.

2. Git nedir?

Git, bir Versiyon Kontrol Sistemi yazılımıdır. Git gibi farklı Versiyon Kontrol Sistemi yazılımları vardır.

  • SVN (Subversion),
  • CVS (Concurrent Versions System) ‘ da versiyon kontrol sistemi yazılımlarıdır.  

3. GitHub Nedir?

GitHub, projelerimizi internet ortamında saklayabileceğimiz, git gibi yazılımlara entegre bir web uygulaması veya web depolama servisidir. GitHub gibi farklı web uygulamaları vardır. Bunlar;

  • GitLab
  • Bitbucket

4. Git Nasıl yüklenir?

5. Git Kullanımı

Projelerimizi tüm versiyonları ile iki yerde saklayabiliriz. Local(kendi bilgisayarımız) , Remote(web depolama servisi github, gitlab gibi.) veya hem local hem de remote’ ta aynı anda saklayabiliriz. Genelde veri kaybı yaşamamak için iki yerde de saklanırlar.

Git’ in iş akışında iki konu çok önemlidir. Bunlaradan birincisi yerel depoda yönetilen üç bölüm, ikincisi branchler;

5.1. Git Bölümleri

Git in iş akışı;  yerel depomuz(repo, repository) git tarafından yönetilen üç “bölümden” oluşur. Birincisi gerçek dosyaları tutan Çalışma Dizini(working directory). İkinci bölüm Stage(index) ve sonuncusu yaptığımız son commit’i gösteren HEAD bölümüdür.

Şekil -1 git bölümleri

Projemizde yaptığımız değişikliklerin son halini localdeki git repoya atmak için ilk önce stage(index de denilir.) denen ara katmana atmak daha sonra stage’ ten git repoya atmak gerekir.

Localde iki şekilde git repo oluşturulabilinir.

git init

ile local repo oluşturulabilinir.  Ya da

git clone https://gitlab.com/etem1/deneme.git 

şeklinde remote ‘taki repoyu localimize indirebiliriz.

Şekil -2 git bölümleri

Localde projemiz için oluşturulan repoya şu şekilde projenin son hali atılır.

git add .  

diyerek projedeki tüm değişiklikler stage’ e atılır. Daha sonra

git commit –m “yapılan değişikliklerin açıklaması” 

şeklinde repoya atılır.

5.2. Git Branchler(dallar)

Bir projede birden fazla kişi çalışabillir ya da çalışacağımız projede code incelemesi yapmak isteyebiliriz. Bunun için birden fazla branch’ te çalışmanız gerekebilir. Git bunu bizim için yönetir.

Localde Git projesi başlatıldığında master adında bir branch oluşturulur.

git branch  

komutu ile hangi branchde olduğumuzu kontrol edebiliriz.

git checkout <branch_adi> 

diyerek istediğimiz branch’ e geçebiliriz.

Farklı adlar ile bir sürü branch oluşturabiliriz.(develeoper, admin panel branchi gibi..)

Localde

git checkout -b <branch_adi>  

şeklinde branch oluşturup o branche geçebiliriz. 

6. Git Konfigürasyonu 

git config --global user.name “deneme”
git config --global user.email deneme@gmail.com

ile git in kullanacağı remote repo için kullanacağınız github yada gitlab gibi hesaplarınızı localde konfigüre edebiliriz.

7. Git Remote Repoyu Locale Çekme ve Birleştirme

git pull origin master  

en son değişiklikleri (commit) yerel depomuza çekebiliriz. Master branchin adıdır.

git merge <branchin_adi>  

ile birleştirebiliriz.

8. Git diğer Komutlar

gitk

dahili git GUI (Grafiksel Kullanıcı Arayüzü) ile git commitlerimizin renkli çıktısını alabiliriz. Grafiksel olarakta geçmiş commitleride görebiliriz.

9. Git Versiyon Oluşturma

Eğer git’ i yazılım projelerimiz için kullanıyorsak yazılımı yayımlamada(publish etmeden) önce versiyon oluşturabiliriz.

git tag 1.0.0 c325331a301a30e293b4851d8aa1bd6e9bd00049

buradaki c325331a301a30d293b4851d8aa1bd6e9bd00049 yayımlanacak yazılım versiyonumuzun işlem numarasıdır.

git log

ile son commitimizin işlem numarasını görebiliriz.

Sık Kullanılan Git Komutları

git init                        	     :    localde projemizi git projesi olarak başlatmak için kullanılır
git add .                       	     :    çalışma dizinide  bulunan tüm dosyaları staging area ya atar.
git commit -m "mesaj"                  :    mesaj yazarak git repository' isine dosyaları atılır.
git log                         	     :    versiyonları listelemek için kullanılan komut
git branch                             :    bulunulan branch' i gösterir.
git status		                         :    yapılan değişikliklerle ilgili bilgiler sunar. Hangi dosyalar stage bölümde hangisi HEAD' de.
git pull origin master	               :    remote' ta master brancindeki projeyi locale çekmek için kullanılır.
git push origin master	               :    localde yapılan değişiklikleri remota atmak için kullanılır.
git -- checkout <dosyaadı>             :    git reposuna atmadan yapılan değişiklikleri yada silinmeyi geri  almak   için kullanılır.
git reset HEAD <dosyaadı>              :    stage 'in bölüme yapılan işlemi geri almak için kullanılır.
git checkout <commit_ID>               :    localde istenilen versiyona gitmek için kullanılır.  

===== localde remote konfigürasyonu yapmak için ======
git config --global user.name "etem"
git config --global user.email etemkeskin@gmail.com

===== localden remotta branch oluşturmak için ======
Localden yeni bir branch oluşturmak ve remottada aynı branchi oluşturmak için:
1) git checkout -b <branch_adi>
2) Daha sonra yapılan değişiklikleri stage areay atıp sonra commiteleriz.
Yapılan değişikliler remote’ a pushlanır.:
3) git push -u origin <branch_adi>
Kaynaklar

http://www.etemkeskin.com

https://git-scm.com

https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet