Staging Area
- Okunuşu
- steycing eriya
Kısaca
Git'teki staging area, dosyalarınız ile bir sonraki commit arasındaki bekleme alanıdır; o commit'e girecek değişiklikleri tam olarak buraya koyarsınız.
Git'te staging area nedir?
Staging area, Git'in bir sonraki commit'inize girecek değişiklikleri topladığı yerdir. Bir dosyayı düzenlediğinizde değişiklik yalnızca çalışma dizininizde, yani diskte gördüğünüz sıradan proje klasöründe bulunur. git add çalıştırmak dosyanın mevcut sürümünü staging area'ya kaydeder; git commit ise stage edilmiş olan her şeyi ve yalnızca onu yeni bir anlık görüntü olarak kaydeder.
Dahili olarak staging area, .git/index adlı tek bir dosyadır; Git'in belgelerinin ona index de demesinin nedeni budur. İzlenen her dosyayı commit edilecek sürümüyle birlikte listeler; bu yüzden bir dosyayı stage ettikten sonra düzenlemeye devam ederseniz, yeni düzenlemeler siz yeniden git add çalıştırana kadar stage edilmemiş kalır. git status her iki grubu da 'Changes to be committed' ve 'Changes not staged for commit' başlıkları altında gösterir.
Staging area, bir sevkiyat kutusunun yanındaki paketleme masası gibidir: eşyaları odanın dört bir yanından toplar, masada kontrol eder ve ancak sonra masadakileri kutuya kapatırsınız. Bu, bir öğleden sonranın karışık düzenlemelerini birkaç küçük ve odaklı commit'e bölmenizi sağlar. git add -p daha da ileri gider ve tek bir dosyadaki değişikliklerin yalnızca bir kısmını stage etmenize izin verir.
Staging area sıklıkla commit ya da stash ile karıştırılır. Stage edilmiş değişiklikler yalnızca bir sonraki commit'in taslağıdır ve henüz proje geçmişinin parçası değildir; commit ise kalıcı bir anlık görüntüdür. git stash ile yapılan stash ise bir başka şeydir: bitmemiş işi ayrı bir rafa kaldırır ve çalışma dizinini temizler. Bir dosyayı düzenlemelerinizi kaybetmeden staging area'dan çıkarmak için git restore --staged <file> kullanın.
Önemli noktalar
- Staging area, bir sonraki commit'e girecek değişiklikleri tutar.
git adddeğişiklikleri stage eder,git commitise yalnızca stage edilenleri kaydeder.- Git staging area'yı
.git/indexdosyasında saklar; bu yüzden ona index de denir. git add -pbir dosyanın yalnızca bir kısmını stage eder; bu da commit'leri küçük ve odaklı tutmaya yardımcı olur.git restore --staged <file>düzenlemelerinizi koruyarak bir dosyayı staging'den çıkarır.
Örnek
# Edit two files, then stage only one of them
git add src/login.ts
git status
# Changes to be committed: modified: src/login.ts
# Changes not staged for commit: modified: src/styles.css
# Stage only some of the changes inside a file, hunk by hunk
git add -p src/styles.css
# Review exactly what the next commit will contain, then commit it
git diff --staged
git commit -m "Fix login form validation"
# Unstage a file but keep your edits
git restore --staged src/styles.cssSık sorulan sorular
Stage edilmiş ve edilmemiş değişiklikler arasındaki fark nedir?
Stage edilmiş değişiklikler git add ile eklenmiştir ve bir sonraki commit'e dahil edilir. Stage edilmemiş değişiklikler ise çalışma dizininizdeki, Git'in fark ettiği ancak siz stage edene kadar commit etmeyeceği düzenlemelerdir.
Staging area neden index olarak da adlandırılır?
Git staging area'yı .git/index adlı bir dosyada saklar; bu yüzden Git'in komutları ve belgeleri git diff --cached örneğindeki gibi sıklıkla index sözcüğünü kullanır. Staging area, index ve cache aynı şeyi ifade eder.
Staging area'yı kullanmadan commit yapabilir miyim?
Çoğunlukla evet. git commit -a commit etmeden önce değiştirilmiş her izlenen dosyayı otomatik olarak stage eder, ancak yeni izlenmeyen dosyaları yine atlar; onların önce git add ile eklenmesi gerekir.
İlgili sayfalar
- CommitSürüm Kontrolü, s. 5Commit, Git'te projenin dosyalarının; benzersiz bir kimlik, yazar, zaman damgası ve değişikliği anlatan bir mesajla kaydedilmiş anlık görüntüsüdür.
- Git DiffSürüm Kontrolü, s. 14Git diff, çalışma dosyaları, stage edilmiş değişiklikler veya commit'ler gibi kodunuzun iki sürümü arasındaki tam satır satır farkları gösteren Git komutudur.
- Git ResetSürüm Kontrolü, s. 20Git reset, mevcut branch'i daha eski bir commit'e geri taşıyan ve moduna göre staging area'yı ile dosyalarınızı da sıfırlayabilen bir Git komutudur.
- Git StashSürüm Kontrolü, s. 22Git stash, commit edilmemiş değişiklikleri geçici olarak saklayıp çalışma dizinini temizleyen komuttur; başka işe geçip çalışmanıza sonra dönmenizi sağlar.
- GitSürüm Kontrolü, s. 10Git, dosyalardaki değişiklikleri zamanla izleyen ücretsiz, açık kaynaklı dağıtık sürüm kontrol sistemidir; iş birliğini ve hataları geri almayı kolaylaştırır.
- .gitignoreSürüm Kontrolü, s. 1.gitignore, Git'in izlememesi gereken bağımlılık, derleme çıktısı, günlük ve gizli bilgi gibi dosya ve klasörlerin kalıplarını listeleyen düz metin dosyadır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin