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.
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?
- Windows kullananlar https://gitforwindows.org/ linkinden yükleyebilir.
- GNU/Linux dağıtımı kullananlar apt-get install git-core ile yükleyebilir.
- MAC kullananlar https://sourceforge.net/projects/git-osx-installer/ linkinden yükleyebilir.
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
https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet