Değişikliklerimizi bir sonraki sürüme ekleyebilmek için git add
komutunu kullanıyoruz:
korayal@koray-mintlinux ~/merhaba-arda $ echo "Ainur sana selam eder" > eru.txt
korayal@koray-mintlinux ~/merhaba-arda $ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
# eru.txt
nothing added to commit but untracked files present (use "git add" to track)
korayal@koray-mintlinux ~/merhaba-arda $
Gördüğümüz üzere burada eru.txt
adlı dosyanın "Untracked files" (Takip edilmeyen dosyalar) kategorisinde listelendiğini, git add <dosya_adı>
komutunu kullanarak bu dosyayı takip edebileceğimizi söylüyor.
Son satırda ise "commit" edilecek (yeni sürümde güncellenecek) dosya bulunmadığı, fakat takip edilmeyen dosyaların bulunduğu, bunları git add
komutu ile ekleyebileceğimiz söyleniyor.
Bu dosyayı ekleyelim:
korayal@koray-mintlinux ~/merhaba-arda $ echo "Ainur sana selam eder" > eru.txt
korayal@koray-mintlinux ~/merhaba-arda $ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
# eru.txt
nothing added to commit but untracked files present (use "git add" to track)
korayal@koray-mintlinux ~/merhaba-arda $
Görüldüğü üzere yaptığımız değişiklik, bir sonraki sürüme yüklenmek üzere işaretlendi.
Yaptığımız bu ekleme işlemi, dosya üzerinde sadece o ana kadar yapılmış değişiklikleri kapsar. Yani takip ettiğimiz dosya üzerinde şimdi bir değişiklik yaparsak, ve bu şekilde commit (güncelleme) yaparsak. Yeni değişikliğimiz o sürüme eklenmeyecektir. İnceleyelim:
korayal@koray-mintlinux ~/merhaba-arda $ echo "elfler varken daha insanlar yok idi" >> eru.txt
korayal@koray-mintlinux ~/merhaba-arda $ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached ..." to unstage)
#
# new file: eru.txt
#
# Changes not staged for commit:
# (use "git add ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
#
# modified: eru.txt
#
korayal@koray-mintlinux ~/merhaba-arda $
Burada yeni bir terim görmüş oluyoruz: stage
"Stage" kelimesi git'te dosyaların bulunduğu 3 ortamdan birinin adıdır.
Bir sürümün değişiklik yapılmamış hali "History" (geçmiş) adı verilen ortamdır.
İkinci ortam, "Working Directory" adı verilen mevcut çalıştığınız klasör ortamıdır. Klasörünüzde bulunan dosyalarda yaptığınız işlemlerin yeni > bir sürüme eklenebilmesi için, öncelikle "Stage (Index)" adı verilen tampon bölgeye eklenmesi gerekir.
git commit
komutunu kullandığınızda, tampon bölgeye eklediğiniz dosyalarınız/güncellemeleriniz bir sonra sürüme aktarılır.
# Changes to be committed:
# (use "git rm --cached ..." to unstage)
#
# new file: eru.txt
#
Sonraki sürüme eklenecek güncellemeler
# Changes not staged for commit:
# (use "git add ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
#
# modified: eru.txt
#
Sonraki sürüme eklenmemiş (Stage alanına eklenmemiş) güncellemeler.
Sonuç olarak git add
komutunun, dosyaların bir sonraki sürüme değil, Stage adlı tampon bölgeye eklendiğini söyleyebiliriz.