Temel 'Git' Komutları

Temel 'Git' Komutları

Bu yazımda kendime not olması için Git versiyon kontrol sistemini temel seviyede kullanabilmek için bir kaç komut ve ne işe yaradıklarını ekleyeceğim.

Yukarıdaki fotoğrafta Git çalışma mantığı ve temel bazı komutları görebiliriz. Öncelikle bilmemiz gereken 4 kavram:

  1. Untracked (izlenmeyen): Git tarafından henüz takip edilmeye başlanmamış dosyaları ifade eder.

  2. Unstaged (hazırlanmamış): Değişiklik yapılmış/güncellenmiş ama commitlenmek için henüz hazırlanmamış dosyaları ifade eder.

  3. Staged (hazırlanmış): Commitlenmeye hazır durumda olan dosyaları ifade eder.

  4. Deleted (silinmiş): Projeden silinmiş ancak GIT üzerinden kaldırılmamış dosyaları ifade eder.

Temel Git Scm komutları:

  • $ git init : git initialization'un kısaltması olup, henüz versiyonlanmamış olan projeyi git ile versiyonlama yapmayı başlatmamızı sağlar ve proje dizinine boş bir .git reposu oluşturur.

  • $ git config --global user.name "Name Surname", $ git config --global user.email "test@email.com" : git ilk kurulduğunda bir defaya özel olmak üzere username ve email ayarlamamızı yapmak için yukarıdaki komutlarda ilgili yerleri değiştirmek için kullanılır. Bu ayarları yapmadan uzak sunucuya commit atarken hata alırız.

  • $ git add <dosya veya klasor_ismi> : Yeni eklenen veya üzerinde değişiklik yapılan dosyaları git'in takip etmesi / staged ortamına göndermek için kullanılır.

  • $ git add . veya $ git add * veya $ git add -A . : Yukarıdaki komut ile dosyaları tek tek staged ortamına göndermek yerine buradaki bu 3 komut ile bütün dosyaları staged ortamına tek seferde gönderebiliriz ve git'in takip etmesini sağlayabiliriz. 3 komut da aynı işi yapar.

  • $ git rm --cached <dosya veya klasor_ismi> : Staged ortamına eklenmiş bir dosyanın takibinin bırakılması yani untracked (izlenmeyen) hale getirilmesini sağlayan komuttur.

  • $ git rm <dosya veya klasor_ismi> : Dosyayı / klasörü git'ten silmemizi sağlayan komuttur.

  • $ git status : Üzerinde çalışılan projenin o anki durumu hakkında bilgi verir. Yapılan değişiklikler, eklenen ve silinen dosyalar gibi bilgiler listelenir.

    1. Bazı GIT kavramları :

      • On branch main -> Main branch'ınde olduğumuzu,

      • Changes to be commited -> Commit'lenmeye hazır değişiklikler olduğunu,

      • Modified: örneğin index.html -> Index.html dosyasında değişiklik yaptığımızı,

      • Deleted: örneğin styles.css -> styles.css dosyasını sildiğimiz,

      • Changes not staged for commit -> Üzerinde değişiklik yapılan ama staged ortamına gönderilmemiş dosyaları ifade eder.

      • Untracked files -> takibi yapılmayan dosyaları ifade eder.

  • $ git commit -m "ilk commit mesajı" : Commit, staged ortamına alınan dosyaların Local Repository’e gönderilmesidir. En iyi uygulama yöntemi her kayıt sırasında yapılan değişiklikleri açıklayıcı bir mesaj eklemektir. Ayrıca her commit benzersiz bir kimliğe (unique ID) sahip olur. Bu sayede eski bir commit'e geri dönebilirsiniz ve herhangi bir kayıp yaşama ihtimaliniz kalmaz.

  • $ git log : Projedeki commit geçmişini görüntülememizi sağlar. Bütün commit'ler, id'si, yazarı, tarihi ve mesajı ile beraber listelenir.

  • $ git branch <branch_name> : Projeye yeni bir branch eklemek için kullanılır.

  • $ git branch -a : Tüm uzak ve yerel branch'lari listelemek için kullanılır.

  • $ git branch -d <branch_name> : Bir branch'ı silmek için kullanılır.

  • $ git checkout <branch_name> : Checkout branch’ler arası veya commit'ler arası geçiş yapmak istediğimizde kullanılır. Mevcutta var olan branch'a geçiş yapmak için bu komut kullanılır.

  • $ git checkout -b <branch_name> : Yeni bir branch oluşturup, bu branch'a geçiş yapmak için kullanılır.

  • $ git checkout <commit_ID> : Commitler arası geçiş yapmak için: (Eski bir versiyona dönmek istediğimiz zaman) kullanılır.

  • $ git merge <branch_name> : Başka bir branch'da olan değişiklikleri, bulunduğumuz branch ile birleştirmek istediğimizde kullanılır.

  • $ git clone <remote_URL> : Mevcut bir Remote Repository'de bulunan dosyaların bilgisayarımızda bir kopyasının oluşturulmasını sağlar.

  • $ git push origin master : Projemizde aldığımız commit'leri, remote repository'e gönderir. (Burada bahsi geçen origin remote repository’nin kök dizinini belirtir ve sabit bir isimdir. master ise sizin çalıştığınız branch (dal)’ı belirtir.)

  • $ git remote add origin http://uzak_deponun_adresi.git : Henüz remote repository’niz yoksa aşağıdaki komut ile local deponuzu uzak sunucudaki depoya bağlayabilirsiniz.

  • $ git diff HEAD : Çalışma dizini ile repository (HEAD) arasındaki farklılıkları görmek için kullanılır.

  • $ git diff : Repository üzerinde yapılan değişikliklerden sonra dosyalar arasında oluşan farklılıkları göterir.

  • $ git diff <commit_id_1>..<commit_id_2> : İki commit arasındaki farklılıkları görmek için kullanılır.

  • $ git diff --staged : Çalışma dizini ve staged ortamı arasındaki farkları görmek için kullanılır.

Kaynaklar