Git bir versiyon kontrol sistemidir. Kullanım amacı bir proje yaparken versiyon oluşturmaktır. Bunun bize faydası ise eğer projede bir hata yaptığımızda eski versiyonlara dönmemiz ve oradan devam etmemiz. Bundan dolayı bir projeye başladığımızda git kurulumu yapmalıyız ve belirli aralıklarla versiyonlar oluşturmalıyız. herhangi bir yerde hata yaptığımızda projeyi kurtarma olanığımız olsun.
Yapı olarak üç bölümden oluşur. Working directory, staging area ve localRepository (localrepo) diye adlandırılan üç bölümden oluşur. Working directory, bizim çalışma alanımız. Yani üzerinde çalıştığımız projedir. Staging area, değişikleri kontrol ettiğimiz alandır. Localrepo ise değişikleri kontrol ettikten sonra local de kaydettiğimiz alandır.
Aşağıdaki resimdeki Git çalışma şemasını inceleyebilirsiniz.
Verileri kaydetme işlemi yaparken hangi kullanıcının kaydettiğini görülmesi için kayıt yapılması gerekir. Kullanıcı adı kaydetmek için yazacağımız kod:
$ git config --global user.name 'tasarim ve yazilim'
Kullanıcı email i kaydetmek için yazacağımız kod:
$ git config --global user.email 'info@tasarimveyazilim.com'
Kaydettiğimiz user name ve email i görmek için yazacağımız kodlar:
$ git config --list
Listeden geri çıkmak yani komut satırına dönmek için “Q” tuşuna basmalısınız..
Git repository oluşturmak için kullanacağımız komut:
$ git init
Dosyaların durumunu öğrenmek için kullandığımız komut:
$ git status
Burada hangi dosyanın izlendiği ile bilğileri bize verir.
Tüm dosyaların staging area alanına alınması için kullanılan komut:
$ git add .
Bu komutta add komutundan sonra kullanılan ” . “(nokta) tüm dosyalar anlamındadır.
Eğer tüm dosyalarımız kayıtlı ve sadece bir dosyada değişiklik yaptıysak sadece onu kaydetmek için add komutundan sonra dosya ismini yazarız. Örneğin index.html dosyasında değişiklik yapmışsak:
$ git add index.html
Eğer yaptığımız değişikler birden fazla olduğunda kullanılan komut:
$ git add -A
Bütün değişiklikleri staging area kaydeder..
Dosyaların git localrepo ya göndermek için kullanılan komut:
$ git commit -m 'ilk dosyalarim'
Burada commit komutu gönderir. -m ise bize yorum (açıklama) eklemek için kullanılır. Html ve Css deki yorum satırı gibi düşünebiliriz.
Dosyaları sadece commit komutu ile gönderebiliriz.
$ git commit
Bu şekilde gönderdiğimiz de karşımıza yeni ekran gelir. Bu ekran vim editörüdür. Açıklama eklemek içindir. Bundan çıkmak için “Q” tuşuna basılır ve :x! yazıp enter yaptığınızda açıklama kaydedip ekran dan çıkmış oluruz.
Tek satır kod ile hem staging area alanına hemde local repo ya gönderebiliriz.
$ git commit -am "açıklama"
Staging area alanından çalışma alanına geri almak için kullanılan komut :
$ git restore --staged index.html
Staging area alanındaki değişikleri geri aldıktan sonra Çalışma alanındaki değişikleri geri almak için kullanılan komut:
$ git restore index.html
Localrepo ya kaydedilen son değişikliği görmek için kullanılan komut:
$ git show
Localrepo ya kaydedilen bütün değişiklikleri ayrıntılı görmek için kullanılan komut:
$ git log
Localrepo ya kaydedilen bütün değişiklikleri tek satırda görmek için kullanılan komut:
$ git log --oneline
Localrepo ya kaydedilen belirli zaman içerisindeki kayıtları görmek için kullanılan komut: Örneğin son 30 dakika içerisindeki:
$ git log --since=30minutes
Örneğin son 2 saat içerisindeki:
$ git log --since=2hours
Localrepo da kaydedilen bir kayıt geri dönmek için checkout komutu kullanılır. Öncelikle localrepo daki kayıtları log –oneline ulaşır ve daha sonra en başlarındaki kodları kullanarak istediğimiz kayıta ulaşabiliriz. Örnek:
$ git log --oneline
Sonuç:
a5c5d03 (HEAD -> master) dosya adı değiştirildi
1a5354c değişiklikler yapıldı
ad8231f slide 3 başlık eklenndi
b771c8d slide 2 başlık değiştirildi
2dbb578 ilk dosyalarim
Örneğin slide 3 başlık eklendi kayıtına gidelim:
$ git checkout ad8231f
Bu şekilde yazarak istediğimiz kayıta geri döneriz…
Bazen eski bir versiyona gitmek degilde bir versiyonda yaptıgımız işlemi geri almak isteyebiliriz. Bunun için revert komutu kullanılır Yine log –oneline sonucunun başındaki değeri alarak yapıyoruz.
$ git revert ad8231f
Burada yaptığımız eski bir versiyona dönmek değil bir versiyonda yapılan değişikliği geri almaktır.
Eğer yaptığımız bütün değişikliklerden vazgeçmek istiyorsak reset komutu kullanılır. Yine $ git log sonucunun başındaki uzun değeri alarak yapıyoruz. Komut satırından geri almak için kullanılan komut:
$ git reset --soft 2dbb578
staging area dan geri almak için kullanmak için kullanılan komut:
$ git reset --mixed 2dbb578
çalışma alanından geri almak için kullanılan komut:
$ git reset --hard 2dbb578
.gitignore dosyası nedir?
.gitignore dosyası git in izlemeye almasını istemediğimiz dosyaları ve klasörleri yazdığımız dosyadır. İlk oluşturulması gereken dosyadır. İzlemeye almadan önce oluşturulmalı. Yani ilk versiyon oluşturulmadan gitignore oluşturulmalı ve içerisine izlenmesini istemediğimiz dosyaları içerisine yazmalıyız.
Eğer .gitignore dosyası sonradan oluşturma durumlarda oluşacak hataları düzeltmek için aşağıdaki komutları yazarız.
İlk olarak önbelleği temizleriz ve sonrasında yeniden izlemeye alırız…
$ git rm -r --cached .
$ git add .
$ git commit -m "gitignore sorunu çözüldü"
Git Branch Nedir? Nasıl oluşturulur?
Branch dilimizde dal anlamına gelmektedir. İlk git kurduğumuzda varsayılan olarak master branch ı oluşturulur. Proje yaparken farklı dallar oluşturma gereği duyulabilir.
Branch oluşturma ve o branch a geçmek için kullanılan komutlar:
$ git branch newbranch // branch oluştu
$ git checkout newbranch // newbranch geçiş yapıldı
Tek satırda da bu işlemi yapabiliriz..
$ git checkout -b newbranch
Örnek : Master branch dışında iki branch oluşturalım ve onları merge yapalım.
$ git branch cssbranch
$ git branch htmlbranch
Html branch da değişikler yapıldıktan sonra aşağıdaki kodlar yazılır :
$ git checkout htmlbranch // bu branch gectik ve html dosyasında değişiklik yapalım
$ git add . // staging area alanına aldık
$ git commit -m "html update"
Css branch da değişikler yapıldıktan sonra aşağıdaki kodlar yazılır :
$ git checkout cssbranch // bu branch gectik ve css dosyasında değişiklik yapalım
$ git add . // staging area alanına aldık
$ git commit -m "css update"
Daha sonra tek bilgisayar yapıyorsak master branch a geçip merge yapılır:
$ git checkout master // master brancha gectik
$ git merge cssbranch htmlbranch // cssbranch ve htmlbranch da yapılan değişiklikler birleştirildi.
Bu branch larda değişiklik yaptık. Branch silmek için kullanılan komutlar:
$ git branch --delete silinecekbranch
veya
$ git branch -d silinecekbranch // komutu ile de silebiliriz.
bash ekranını temizlemek için “clear” komutu kullanılır.
bash terminalinde dosya oluşturmak için : touch dosya.uzantı
bash terminalinde dosya adını değiştirmek için : mv dosyaAdi.uzanti yeniDosyaAdi.uzanti
bash terminalinde dosyaları görmek için : ls
bash terminalinde dosyaları ayrıntılı görmek için : ls -al
Arkadaşlar bu yazımızda git versiyon oluşturma da localrepo kısmını inceledik. Uzak repo kayıt işlemlerini Github Yazımızda öğrenebilirsiniz.
Başka bir yazımızda görüşmek üzere…