Git Versiyon Control Sistemi Nedir ? Kullanılan Komutlar Nelerdir ?

Emre savaş
4 min readAug 12, 2020

--

Git Nedir ?

Git, ücretsiz ve açık kaynaklı bir sürüm kontrol sistemidir. En büyük özelliklerinden biride dağıtık mimariyi kullanarak merkezi yapıda bulunmamasıdır. Zaman içinde dosyalardaki değişiklikleri kaydetmenize ve bu dosyaların değişikliklerini ve belirli sürümlerini daha sonra görüntülemenize olanak tanıyan bir sistemdir. Git, küçük veya büyük projelerde çalışan geliştiricilerin kod değişikliklerini ve hatalarını yönetmeye yardımcı olur. Değişiklikleri aşamalandırmayı ve belirli bir sürüme kolayca geri dönmeyi kolaylaştırır.

Git Avantajları ;

  • Dağıtık çalışabilmesi: Sunucuya bağımlılık şart değil. Yüklenen her ortam sunucu görevi görebilir.
  • Hız odaklı tasarımı. (Easy to branch)
  • Kaynak tüketiminin düşük olması.
  • Git branch dosyalarını kopyalamaz, sadece referanslarını tutar.

Git VCS Kullanılan Komutlar

Git VCS Kullanılan Komutlar

git clone

Uzak depodaki bir projeyi bilgisayarımıza kopyalamak için kullanılan komuttur.

$ git clone kopyalamak_istedigimiz_projenin_url

‘ git clone kopyalamak_istediginiz_projenin_urli ’

git config

Global bilgilerin (username & password by Repository or Global) yönetilmesinde yardımcı olur.

$ git config --global user.name "User name"

$ git config --global user.email "email"

git init

Yeni ve boş bir repository oluşturup, git’in çalışabilmesi için gerekli olan ayarlamaları yapar. Yeni bir projeye başlarken init ile başlarız.

git add

Çalışma dizinindeki dosyayı geçiş bölgesine aktarmak için kullanılır. Komutun sonunda bir dosya parametresi eğer tüm dosyaları aktarmak isterseniz “. “ parametresi bütün dosyaları geçiş bölgesine aktar anlamına gelmektedir.

git commit

Yapılan değişiklikleri tek bir commit için sıkıştırır ve repository’e eklenecek hale getirir. Her commit’in bir hash adresi vardır; git dosyaları kıyaslarken bu commit hash’ler üzerinden ilerler.

$ git commit -a tüm dosyaları commit etmektir.
$ git commit -m "index sayfası değiştirildi" değişikliği mesaj ile ilettik.
$ git commit -am "index değiştirildi" iki işlemi bir arada yapmış olduk. İki satır komut girmek yerine tek satır ile iki işlemi yaptık.‘

git remote

Uzaktan kumandalar, yerel git deposundaki verileri GitHub, Bitbucket gibi istemcilere ve ayrıca uygulama geliştirirken Azure, AWS gibi bulut sağlayıcılarına göndermek için kullanılır.

git push

Uzak sunucuya değişikliklerin gönderildiği komuttur.

$ git push origin master // Uzak sunucudaki ana dalı master yapar.

$ git push -d origin master // Uzak sunucudaki ana dalı siler.

$ git push // değişikleri uzak sunucuya göndermemizi sağlar.

git pull

Çalışılan repository’nin bilgilerini ve yapılan son değişiklikleri local branch’e çeker,merge eder. Git pull içinde fetch ve merge barındırır.( git fetch sadece değişiklikleri çeker birleştirme yapmaz.)
$ git pull origin dal_ismi GitHub üzerindeki dalı bizim yereldeki dala merge etmeyi sağlar. Güncellemeler olduğunda, yenilikleri elimizdeki projeye dahil etmek için bu komutu kullanırız.
git pull -p uzak sunucudaki değişiklikleri çeker ve yereldeki origin olan branchlari siler.

git branch

Yeni branch oluşturmak, listelemek veya silmek için kullanılır.

-- branch bilgilerini gösterir
git branch
-a
-- yeni branch oluşturur
git branch myFeature
-- branch'i local'den siler
git branch
-d myFeature

git checkout

Dallar üzerinde geçiş yapmayı sağlar

$ git checkout dev // dev dalına geçiş sağlar.

$ git checkout -b yeni_branch // yeni_branch isimli dal oluşturup geçiş yapar.

git merge

Oluşturulmuş dalları birleştirmek için kullanılır.

git rm

Uzak sunucudaki dosyaları silmek için kullanılır.

$ git rm -r dosya_adi

git tag

Etiketle sürüm numarası oluşturmak için kullanılır.

$ git tag 1.0.1 commitin_hash_degeri

git rebase

Merge gibi farklı commitleri bir araya getirir. Merge’den farkı rebase uygulandığı branch’in üzerinde yeni bir merge commit oluşturmaz.

- Önce her iki branch’inde ortak commit’ini belirler. (Bir önceki örnekten A ve B üzerinden gidelim)

- Sonrasında A → A’ arasını çıkarır, geçici bir yere taşır.

- Yeni branch’i B → B’ arasını ana hatta çeker

- Geçici olarak taşıdığı A → A’ arasını tekrar ana hatta ekler.

git status

Çalışılan projedeki değişiklikleri listeler.

$ git status

git diff

Yaptığımız farklılıkları listeleyebiliriz. (Eğer bu komutu çalıştırdıysanız ctrl+z ile farklılıklar listesinden çıkış yapabilirsiniz)

Ayrıca iki dal arasındaki farklılıkları da listelememizi sağlar.

$ git diff <a branch> <b brach>

git log

Oluşan bütün commitler hakkında detaylı bilgileri listelemek için kullanılır.

git blame

Hangi dosyada işlem yapılmış veya değişiklik bilgileri listeler.

$ git blame dosya_adi

git revert

Commit ettiğimiz herhangi bir değişiklikleri geri almak için kullanılır.

$ git revert geri_almak_istedigimiz_comitin_hash_degeri

git reset

Revert gibidir fakat son commit silinir.

$ git revert --hard silmek_istedigimiz_comitin_hash_degeri

git remote

Uzak sunucunun yönetimini sağlar. Remote ismi, branch listeleri, repository bilgileri gibi bilgilere erişebiliriz.

git remote show origin: Genel olarak branchler ve repository hakkında bilgi verir. Yeni bir branch veya repo yarattığınız zaman sıklıkla kullanıp, remote üzerinde ne gibi değişiklikler olduğunu takip edebilirsiniz.

git clean

Local untracked durumundaki dosyaları siler, geri alır.

-- hangi dosyaların silineceğini gösterir
git clean
-n
-- silme işlemi -f ile force edilir.
git clean
-f
git clean -f -d

git stash

Yapılan değişiklikleri geçici olarak saklamak için kullanılır.

Stash, branchler arasında geçiş yapacağımız zaman çok kullanışlı oluyor. Git branch dosyalarını kopyalamadığı için örneğin; dev branch’inde bir değişiklik yaptınız fakat işiniz bitmedi ve master branch’ine bir hotfix atmanız gerekiyor fakat dev üzerindeki değişiklikleri kaybetmek istemiyorsunuz.

Bu durmda dev kodunu stash’a alıp, master’a geçip hotfix’i uyguladıktan sonra tekrar “stash apply” ile kaldığınız yerden devam edebilirsiniz.

--

--

Emre savaş