Özet - Archive
- Git kursu
- İleri seviye
- Ders 32/56
- 5 dk
archive akışını birleştirerek dağıtım paketi hazırlarsın.
Arşivleme İş Akışı Özeti
git archive, depodaki commit geçmişini ve .git klasörünü dahil etmeden temiz dağıtım paketleri üretir. --format ile tar veya zip seçilebilir, --output ile hedef dosya belirlenir ve belirli bir dal ya da etiket paketlenebilir.
git archive --format=tar --output=surum.tar release
git archive --format=zip -o surum.zip v1.0.0Bu araç sayesinde sürüm yayınlama ve sunucuya dağıtım süreçlerinde gereksiz Git meta verilerini taşımadan yalın kod paketleri oluşturulur.
Uygulama Uçtan Uca Dağıtım Arşivi
Depoda prod dalındaki dosyaları --format=tar ve --output=dagitim.tar seçenekleriyle prod dalını referans vererek paketle. Ardından tar -tf dagitim.tar ile arşivin içindeki dosyaları listele.
Başlangıç kodu
git init -q
git config user.name "Dev"
git config user.email "dev@example.com"
echo "console.log('sunucu hazir');" > server.js
git add server.js
git commit -q -m "Sunucu hazirlandi"
git branch prod
git checkout -q -b test
echo "gecici test" > test.txt
git add test.txt
git commit -q -m "Test dosyasi"
# Dagitim paketini olustur ve listele:Örnek çözüm
git init -q
git config user.name "Dev"
git config user.email "dev@example.com"
echo "console.log('sunucu hazir');" > server.js
git add server.js
git commit -q -m "Sunucu hazirlandi"
git branch prod
git checkout -q -b test
echo "gecici test" > test.txt
git add test.txt
git commit -q -m "Test dosyasi"
git archive --format=tar --output=dagitim.tar prod
tar -tf dagitim.tarBeklenen çıktı
server.js
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir üretim sunucusuna Git deposunu dağıtırken <code>git clone</code> yerine neden <code>git archive</code> tercih edilir?
- Depo boyutunu artırıp sunucuyu hızlandırdığı için
- Sunucuda Git kurulu olmasını zorunlu kıldığı için
- .git geçmişini taşımadan yalın ve güvenli bir paket sağladığı için Doğru cevap
- Yalnızca yerel ağda çalışan bir komut olduğu için
Açıklama: `git archive` ile oluşturulan paketlerde `.git` klasörü ve geçmiş bulunmaz; bu sayede hem dosya boyutu çok küçülür hem de hassas geçmiş verileri sunucuya gereksiz yere taşınmaz.
2 Dağıtım Paketini Oluştur
git archive --format=tar --output=app.tar ____
git archive --format=tar --output=app.tar prod
Açıklama: `prod` dalını tar olarak arşivlemek için komutun sonuna doğrudan dal adı verilir.
3 Archive Özellikleri
| Kavram | Anlamı |
|---|---|
git archive |
Temiz kaynak paketi oluşturur |
--format=zip |
Sıkıştırılmış zip çıktısı |
--output |
Oluşturulacak dosya adı |
prod |
Paketlenecek hedef dal |