Gelişmiş Araçlar: rebase, stash, cherry-pick ve etiketler
Git'i sadece temel düzeyde bilenlerle onu özgüvenle kullananları ayıran araçlara geçiyoruz. Rebase'i merge'e alternatif olarak inceliyoruz — ne zaman geçmişi daha temiz hale getirdiğini, ne zaman ise kabusa çevirdiğini göstereceğiz. Stash ile yarım kalan işleri hızlıca 'bir kenara koymayı', cherry-pick ile belirli commit'leri taşımayı ve etiketlerle sürümleri işaretlemeyi ekliyoruz.
- Git stash'i, değişiklikleri kaybetmeden görevler arasında bağlam değiştirmek için kullanabileceksiniz.
- Rebase ile merge arasındaki farkı anlayacak ve bağlama göre bilinçli bir seçim yapabileceksiniz.
- İnteraktif rebase ile commit geçmişini düzenlemeyi ve sürümleri etiketlerle işaretlemeyi öğreneceksiniz.
จุดเริ่มต้นของบทเรียน
Sorun: Bitmemiş işi nasıl erteleyebilirim?
- Aniden gelen hata düzeltmesi çalışmanızı böler
- Bitmemiş kod commit yapılamaz
- Git stash — değişiklikler için geçici depolama
- Hem izlenen hem de izlenmeyen dosyaları kaydeder
- Çalışma dizinini temiz duruma getirir
Düşünün: yeni bir özellik üzerinde çalışmanın tam ortasındasınız ve aniden acil bir hata düzeltmesi geliyor. Her şeyi yarıda bırakmak istemezsiniz, ancak ham kodu da commit yapamazsınız. İşte tam bu gibi durumlar için git stash var — dijital geçici rafınız. Bu, oyunda duraklatma düğmesine basmak gibidir: mevcut ilerleme kaydedilir ve başka bir işle ilgilenebilirsiniz. Geri döndüğünüzde, her şey tam olarak bıraktığınız gibi olacak, hatta -u bayrağını unutmadıysanız izlenmeyen dosyalar bile. Bu sizi aynı anda birden fazla görevi aklınızda tutma zorunluluğundan kurtarır.
Değişiklikleri kaydetme ve görüntüleme
- git stash save — değişiklikleri depoya kaydeder
- git stash list — kaydedilen değişikliklerin listesini gösterir
- Her stash’e benzersiz bir kimlik atanır
- stash@{0} — en son kaydedilen değişiklik
- Depo, çalışma dizininin durumunu saklar
Şimdi git stash’in pratikte nasıl kullanılacağını inceleyelim. git stash save komutu, çalışma dizinindeki tüm değişiklikleri ve indekslenmiş dosyaları kaydederek sizi temiz duruma döndürecektir. Çalışmalarınız kaybolmaz — özel bir depoya gider. Değişikliklerin kaydedildiğinden emin olmak için git stash list komutunu çalıştırın. stash@0 gibi benzersiz tanımlayıcılara sahip tüm ertelenmiş görevlerin bir listesini göreceksiniz. Bu, ilerlemenizi kaybetmeden görevler arasında hızla geçiş yapmanız gerektiğinde özellikle kullanışlıdır.
# Geçerli değişiklikleri kaydet
git stash save "WIP: Yeni giriş formu özelliği"
# Kaydedilen değişikliklerin listesini kontrol et
git stash list
# Son stash'in içeriğini görüntüle
git stash show -p
Ertelenen değişiklikleri geri getirme
- git stash pop — son stash’i uygular ve siler
- git stash apply — silmeden uygular
- Kod değiştiyse çakışmalar oluşabilir
- Çakışmalar elle çözülür
- stash@{n} — belirli bir kayda erişmek için
Ertelenen işe dönme zamanı geldiğinde iki seçeneğiniz var. git stash pop komutu, son kaydedilen değişiklikleri uygulayacak ve stash listesinden silecektir. Değişiklikleri yalnızca görmek veya birden çok kez uygulamak istiyorsanız git stash apply kullanın — değişiklikler depoda kalır. Unutmayın: stash kaydedildikten sonra kodda bir şey değiştiyse çakışmalar oluşabilir. Bu durumda Git sorunu bildirir ve çakışmaları elle çözmeniz gerekir.
# Son ertelenen değişiklikleri geri getir
git stash pop
# VEYA silmeden uygula
git stash apply
# Belirli bir stash'i dizine göre uygula
git stash apply stash@{1}
บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก
ฉบับเต็มมีสไลด์เพิ่มอีก 25 สไลด์
วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก
เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิกเนื้อหาบทเรียน
- Sorun: Bitmemiş işi nasıl erteleyebilirim?
- Değişiklikleri kaydetme ve görüntüleme
- Ertelenen değişiklikleri geri getirme
- Stash'in zarar verebileceği durumlar
- Dal birleştirme nasıl çalışır?
- Rebase: Commit geçmişini yeniden yazma
- Ne zaman ne kullanılmalı: Pratik senaryolar
- Rebase'in Tehlikeleri: Neler Yanlış Gidebilir?
- Rebase Nedir ve Neden Gereklidir?
- Rebase İşlemini Adım Adım Gerçekleştirme
- Rebase Sırasında Çakışmaları Çözme
- İnteraktif Rebase: Commit Geçmişi Düzenleyiciniz
- İnteraktif Rebase'in Temel Komutları
- Pratik: Geçmişi Mükemmelleştirme
- Dikkat: Yayınlanmış Geçmişi Değiştirmek
- Ortak Dallarda Neden Rebase Kullanılmamalı?
- Başarısız Bir Rebase'den Nasıl Kurtulunur?
- Geçmişi Güvenle Düzeltme
- Git'te Cherry-Pick Neden Kullanılır?
- git cherry-pick Nasıl Kullanılır?
- Ne Zaman Hangisini Seçmeli: Cherry-Pick vs Merge vs Rebase
- Git Etiketleri: Önemli Commit'ler için Yer İmleri
- Açıklamalı ve Hafif Etiketler Oluşturma
- Etiketleri Uzak Depoya Gönderme
- Senaryo: Geliştirme Ortasında Acil Düzeltme (Hotfix)
- Rebase ve Cherry-pick ile Değişiklikleri Birleştirme
- Sık Yapılan Hatalar ve Bunlardan Kaçınma Yolları
- Özet: Git Ustasının Yeni Cephaneliği
บทความเกี่ยวกับบทเรียนนี้
- git rebase: ทำงานอย่างไร โหมดโต้ตอบ และการ squash คอมมิต
- คำสั่ง Git: ชีตสรุปพร้อมตัวอย่างสำหรับใช้ทุกวัน
- Git merge กับ rebase: ควรเลือกแบบไหนสำหรับทีมของคุณ
- git stash: พักการเปลี่ยนแปลงชั่วคราวและกู้คืนได้อย่างไร
- คำถาม Git ในการสัมภาษณ์งาน: 25 ข้อพร้อมคำตอบ
บทเรียนทั้งหมดในคอร์สนี้
- Giriş: Sıfırdan Güvenilir Geliştiriciye Git
- Git Neden Gereklidir — ve Neden İşe Alırken Onsuz Yapamıyorlar
- Kurulum ve Yapılandırma: Git'i İlk Çalıştırmaya Hazırlama
- İlk Depo: init, add, commit ve İndeksin Sihri
- Geçmişi Okumak: log, diff, show ve Geçmişte Gezinti
- Dallar: Kodunuzun Paralel Gerçekliği
- Hataları Geri Alıyoruz: restore, reset, revert — Doğru ve Tehlikeli Kullanımları
- GitHub ve Uzaktaki Depolar: Kodunuz Bulutta
- Takım Çalışması: Fork'lar, Özellik Dalları ve Pull Request'ler
- Birleştirme Çakışmaları: Panik Yapmayın — Anlayın ve Çözün
- Gerçek Ekiplerde Git Süreçleri: Hangi İş Akışı Seçilmeli
- Gelişmiş Araçlar: rebase, stash, cherry-pick ve etiketler
- Final Proje: Gerçek Ekip Çalışmasını Simüle Ediyoruz