GIT Bash ile Temel GIT Komutları

Git Bash ile Git temel komutlarını anlatıyoruz. Git ile terminal kullanarak Versiyon Kontrol Sistemi'ni yürüten komutlar nelerdir ?

GIT Bash ile Temel GIT Komutları

GIT Bash ile Temel GIT Komutları

Git Bash'ı açalım ve açtığımız sayfamız bu şekilde ise tamamdır diyebiliriz.

Başlıca bilinmesi gerekenler

  • Untracked (izlenmeyen) : Git'in takip etmediği yeni oluşturulmuş dosyaları belirtir.
  • Unstaged (hazırlanmamış) : Değiştirilmiş ama commit'lenmek için hazır olmayan dosyaları belirtir.
  • Staged (hazırlanmış) : Commit'lenmeye hazır dosyaları belirtir.
  • Deleted (silinmiş) : Proje içerisinde silinmiş ancak Git üzerinden silinmemiş dosyaları belirtir.

git init

Versiyon kontrolü olmayan bir projenin dizininin içinde boş bir git reposu açmak için kullanılır.

$ git init

git config

Git'in fazlasıyla ayarı vardır, bunlardan ikisi user.name ve user.email'dir. Bu ayarları yapmak için şu komutları kullanırız.

$ git config --global user.name "Name Surname"
$ git config --global user.email "[email protected]"

Git'i kurduğumuz zaman genellikle bu ayarları yapmadığımızda hata alırız ve o sebep ile bu ayarları yapmayı unutmayınız. Ayrıca Github gibi platformlarda da bu bilgiler gözükür o sebep ile doğru bilgileri girelim. Ayrıca proje bazlı bu ayarları değiştirebilirsiniz. Bu ayarların bütününü görmek için kullanacağınız komut ise : 

$ git config --list

Eğer Windows kulanıyor iseniz şöyle bir hata alabilirsiniz.

warning: LF will be replaced by CRLF in kaynak/dosya/yolu
Bu hatayı çözmek için şu komutu kullanabilirsiniz:
$ git config core.autocrlf true

git add

Yeni bir dosyayı veya değişiklik yapılmış dosyaları staged alanına yollamak için kullanılır.

$ git add <dosya veya klasor_name>

Tüm dosyaları göndermek için ise şu komut :

$ git add .  /  $ git add *  /   $ git add -A .

git rm

Staged ortamına dahil edilmiş bir dosyayı takip edilmemesi için yani untracked biçimine getirilmesi için kullanılan komuttur.

$ git rm  --cached <dosya veya klasor_name>

Dosyamızı silmek istersek ise şu kod :

$ git rm <dosya veya klasor_name>

git status

Üstünde çalışılmakta olan projenin o anlık durumunu bildirmek için kullanılır. Yapılmış olan değişiklik ve eklenmiş/silinmiş dosyaların bilgisini verir.

$ git status

git commit

Commit, staged alanına eklenmiş dosyaların Yerel depoya gönderilmesidir. En güzel şekilde işlenmesi ise her kayıt sırasında yapılan değişiklikleri açıklamalar ile yapmaktır. Aynı zamanda her commit bir kimliğe sahiptir. Bununla birlikte eski commitlere de dönebiliriz.

$ git commit -m "ilk commit mesajı"

-m mesaj anlamında kullanılmıştır.

git log

Projemizin commit geçmişlerini görmek için kullanılan komuttur. Bütün commitleri id, yazar, tarih ve açıklamasıyla gösterir.

$ git log

git branch

Yerel veya uzak bağlantılı bir depo üzerinde yeni bir dal oluşturmak, silmek ve göstermek için kullanılan komuttur.

Yeni bir dal eklemek için :

$ git branch <branch_name>

Tüm uzak ve yerel dalları listelemek için :

$ git branch -a

Bir dal'ı silmek için : 

$ git branch -d <branch_name>

git checkout

Dal'lar arasında veya commitler arasında geçiş yapmak için kullanılan komuttur.

Varolan bir dal'a geçmek için :

$ git checkout <branch_name>

Yeni bir dal oluşturup bu dal'a geçiş için :

$ git checkout -b <branch_name>

Commitler arası geçiş yapmak için kullanılan komut ise :

$ git checkout <commit_ID>

git merge

Başka bir dal'da olan güncelleştirmelerinizi bulunduğunuz dal ile bir araya getirip birleştirmek için kullanılan komuttur.

$ git merge <branch_name>

git clone

Varolan bir uzak depo'da bulunan dosyaların bilgisayarımızda bir kopyasını oluşturmaya yarayan komuttur.

$ git clone <remote_URL>

git push

Proje içinde aldığımız commitleri uzak bağlantılı bir depoya göndermek için kullanılır.

$ git push origin master

Origin uzak depo'nun dizinini belirtir. Master ise bizim üzerinde çalıştığımız dal'ı gösterir. 

Uzak bir deponuz yok ise şu bağlantı ile uzak depolarınıza bağlanabilirsiniz :

$ git remote add origin http://uzak_deponun_adresi.git

git diff

Depo üstünde yapılan güncellemeler sonrası dosyalar arasında oluşan farklılıkları gösteren komuttur. 

Çalışma dosyaları ile depo arasında farklılıkları göstermek için : 

$ git diff <depo ismi>

İki commit arası değişikliği görmek için ise :

$ git diff <commit_id_1>..<commit_id_2>

Çalışma dosyaları ve staged alanı arası farklılığı görmek için ise : 

$ git diff --staged