Welcome to My Blog 👋

Java, Spring Framework, Microservices, Docker, Kubernetes, AWS and Others 🚀
Follow Me

Git Nasıl Kullanılır?



  January 06, 2019    Labels:,,,,,,, 

Bir önceki yazıda Git'in ne olduğunu ve nasıl kurulacağını anlatmıştım. Bu yazıda Git'in nasıl kullanıldığını ve en basit işlemlerini anlatacağım. Daha detaylı işlemlerini daha sonraki yazılarda anlatacağım.

Kısaca Git Ortamları

Git projelerimizde birden fazla ortam bulunur. Bunlar sırasıyla local'imiz, geçiş bölgesi, git deposu(local repository) ve uzak depo'dur(remote repository). Bu ortamlar kısaca şu işe yarar;

  • Local'imiz, projemizin bir örneğini bulundurduğumuz kendi proje dizinimizdir ve bu örnek üzerinde değişikliklerimizi yaparız.
  • Geçiş bölgesi, git deposuna göndermek istediğimiz değişiklikleri eklediğimiz bir liste olarak düşünebiliriz. Commit işleminde sadece bu listeye eklediğimiz değişiklikler git deposuna eklenir.
  • Git Deposu, kendi bilgisayarımızda bulunan Git'in kendi standartlarına göre bizim projemizi sakladığı depodur. Projemizin son halini bu depoda saklarız. Local'imizde yaptığımız değişiklikleri bu depoya gönderiririz.
  • Uzak Depo, aslında Git'i kullanmamızdaki temel amaçları sağlayan ortamdır. Proje üzerinde çalışan herkesin kendi local'i, geçiş bölgesi ve git deposu bulunur. Bu ortamlar herkesin kendi bilgisayarında bulunur. Biz birden fazla kişi olarak bir proje üzerinde çalıştığımızda ortak bir ortam ararız. İşte bu ortamı sağlayan uzak depodur. Herkes kendi deposundaki dosyaları uzak depoya gönderir(push etmek) ve bu şekilde ortak olarak bir proje üzerinde çalışılır. Aynı zamanda kendi bilgisayarımızdaki depomuz yanlışıkla silinse bile uzak depodan biz projemizi tekrardan kendi bilgisayarımıza indirebiliriz. Uzak deponun en güzel örneği Github'tır. Github bizim için bu hizmeti sağlar.

Git Kullanımı

Aşağıdaki komut ile bulunduğumuz dizinde bir Git projesi oluşturabiliriz. ProjeAdi olan yere projenizin adını girmelisiniz. Bu bilgi opsiyoneldir. Eğer bu bilgi girilmezse hangi klasörde isek o klasör bir git projesine çevrilir. Eğer proje adını girersek bulunulan klasör içerisine proje adında bir klasör açılır ve bu klasör git projesine çevrilir.

git init projeAdi

Git projesine çevirdiğimiz klasörün içerisine git adında bir klasör oluşturulur. Gizli klasör olarak oluşturulur bu yüzden görüntüleyemeyebilirsiniz. Bu klasör bulunduğu klasörün bir Git projesi olduğunu belirtir ve gerekli ayarları içerir. Git projesine dönüştürdüğümüz klasöre ben bundan sonra kısaca projemiz diyeceğim. Projemize bir dosya eklediğimizde veya projemizdeki bir dosyayı değiştirdiğimizde Git bu değişiklikleri otomatik algılar. Bu değişiklikleri görmek için aşağıdaki komutu kullanabiliriz.

git status

Yaptığımız değişiklikleri istersek geçiş bölgesine(staging area) taşıyabiliriz. Projemizde bir çok deişiklik yaptığımızda hepsini depomuza göndermek istemeyebiliriz. Burada depo dediğimiz şey Git'in projemizi sakladığı ortamlara denilebilir. Biz bazı değişiklikleri bu depoya göndermek istediğimiz için depoya göndermek istediğimiz değişiklikleri geçiş bölgesine taşırız. Bu işlemi aşağıdaki komut ile yapabiliriz. Dosya adı ile geçiş bölgesine taşımak istediğimiz dosyayı belirtiriz. Eğer nokta koyarsak Git'in tüm dosyaları geçiş bölgesine taşıması gerektiğini söyleriz.

git add dosyaAdi

git add .

Eğer geçiş bölgesindeki değişikliklerimizi Git deposuna göndermek istersek aşağıdaki komutu kullanırız. Bu işleme commit denir. Git projemizi kendine uygun şekilde depo(repository) adı verdiğimiz yerde saklar. Daha sonra Git üzerinde yapabileceğimiz tüm işlemleri (değişiklikleri geri alma, birden fazla kişinin yaptığı değişiklikleri birleştirme, vs) bu depo sayesinde yapabiliriz. Commit mesajı olarak istediğiniz bir mesaj girebilirsiniz. Proje büyüdüğü zaman projeye eklediğiniz her bir değişikliğin ne anlama geldiğini takip etmeniz açısından anlamlı bir şeyler girmeniz daha doğru olacaktır.

git commit -m "commit mesajı"

Aşağıdaki komut ile projemizde yaptığımız commit'lerin hepsini görebiliriz. Bu şekilde projemizde ne gibi değişiklikler olmuş ekipteki kimler ne zaman projeye kod eklemiş, neler eklenmiş bunları takip edebiliriz. Her commit'in üzerinde bulunan uzun sayılardan oluşan kod commit'lerin id bilgisidir. Commit'ler üzerinde işlem yaparken bu id bilgisini kullanırız.

git log

Aşağıdaki kod ile commit'ler üzerinde hareket edebiliriz. Örneğin projemizde 10 commit olmuş ve biz projenin daha eski bir haline erişmek istiyoruz. Örneğin projeyi 5. commit'in yapıldığı zamandaki haline döndürmek istiyoruz. Bu durumda aşağıdaki komutu kullanırız. Bu komuttaki commitId dönmek istediğimiz commit'in id bilgisidir. Yukarıdaki komut ile bu id bilgisini öğrenebileceğimizi söylemiştik. Burada dikkat edilmesi gereken bir noktada projeyi zamanda geri aldığımızda proje sadece bizim local'imizde değişiklik gösterir. Git deposunda bulunan projemizde herhangi bir değişiklik olmaz.

git checkout commitId


1 comment:

  1. gayet açık ve net bir anlatım olmuş. Emeğinize sağlık teşekkürler

    ReplyDelete