CodeBlanks Logo Icon CodeBlanks

git archive

git archive ile depo arşivi oluşturmayı öğrenirsin.

git archive Nedir?

git archive, bir Git deposundaki belirli bir commit veya daldaki dosyaları sıkıştırılmış tek bir arşiv dosyası (tar veya zip) olarak dışa aktarır. Klonlamanın veya klasör kopyalamanın aksine, .git geçmiş klasörünü arşive dahil etmez.

git archive --output=proje.tar HEAD

Böylece yalnızca kaynak kodun temiz bir anlık görüntüsünü (snapshot) müşteriye veya sunucuya dağıtmak için ideal bir paket elde edersin.

Arşiv Çıktısı ve Hedef Dosya

Arşiv çıktısını belirlemek için --output (veya kısaca -o) seçeneği kullanılır. Dosya adının uzantısına göre Git arşiv formatını kendiliğinden tanıyabilir.

git archive -o proje.tar HEAD
git archive --output=kaynak.tar.gz HEAD

Ayrıca --prefix=proje/ bayrağı eklenirse, arşiv açıldığında dosyalar doğrudan bir alt klasörün içine çıkarılır.

Uygulama HEAD Arşivi Oluştur

Depodaki son commit'i (HEAD) --output=surum.tar parametresi ile arşivle. Ardından tar -tf surum.tar komutuyla arşiv içeriğini listele.

Başlangıç kodu

terminal
git init -q
git config user.name "Dev"
git config user.email "dev@example.com"
echo "v1.0.0" > surum.txt
git add surum.txt
git commit -q -m "Ilk surum"

# HEAD arsivini olustur ve icerigini listele:

Örnek çözüm

terminal
git init -q
git config user.name "Dev"
git config user.email "dev@example.com"
echo "v1.0.0" > surum.txt
git add surum.txt
git commit -q -m "Ilk surum"

git archive --output=surum.tar HEAD
tar -tf surum.tar

Beklenen çıktı

surum.txt

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>git archive</code> komutunun düz bir klasör kopyasından temel farkı nedir?

  • .git geçmişini hariç tutarak temiz bir anlık görüntü üretmesi Doğru cevap
  • Tüm dalları aynı anda arşivlemesi
  • Uzak sunucudaki depoyu otomatik silmesi
  • Yalnızca .git klasörünü dışa aktarması

Açıklama: `git archive`, depodaki `.git` dizinini ve taahhüt geçmişini hariç tutarak sadece o anki dosyaların temiz bir snapshot paketini oluşturur.

2 HEAD Commitini Arşivle

Soru
git archive --output=yedek.tar ____
Cevap
git archive --output=yedek.tar HEAD

Açıklama: Son commit içeriğini arşivlemek için hedef referans olarak HEAD belirtilir.

3 Arşiv Temelleri

Kavram Anlamı
git archive Depo anlık görüntüsünü paketler
HEAD Arşivlenecek güncel commit
--output Çıktı dosya yolunu belirler
.git klasörü Arşiv dosyasına eklenmez

İleri seviye bölümündeki tüm dersler