-
1. Başlangıç
- 1.1 Sürüm Denetimi
- 1.2 Git’in Kısa Tarihçesi
- 1.3 Git Nedir?
- 1.4 Komut Satırı
- 1.5 Git’i Yüklemek
- 1.6 Git’i İlk Defa Kurmak
- 1.7 Yardım Almak
- 1.8 Özet
-
2. Git Temelleri
-
3. Git Dalları
- 3.1 Dallar
- 3.2 Kısaca Dallandırma ve Birleştirme Temelleri
- 3.3 Dal Yönetimi
- 3.4 İş Akışı Dallandırması
- 3.5 Uzak Dallar
- 3.6 Yeniden Temelleme (rebase)
- 3.7 Özet
-
4. Bir Sunucuda Git Kurma
- 4.1 İletişim Kuralları (Protocols)
- 4.2 Bir Sunucuda Git Kurma
- 4.3 SSH Ortak Anahtarınızı Oluşturma
- 4.4 Sunucu Kurma
- 4.5 Git Cini (Daemon)
- 4.6 Akıllı HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Üçüncü Taraf Barındırma (Hosting) Seçenekleri
- 4.10 Özet
-
5. Dağıtık Git
- 5.1 Dağıtık İş Akışları
- 5.2 Projenin Gelişiminde Rol Almak
- 5.3 Bir Projeyi Yürütme
- 5.4 Özet
-
6. GitHub
- 6.1 Bir Projeye Katkıda Bulunmak
- 6.2 Proje Bakımı
- 6.3 Kurumsal Yönetim
- 6.4 GitHub’ı otomatikleştirme
- 6.5 Özet
-
7. Git Araçları
- 7.1 Düzeltme Seçimi
- 7.2 Etkileşimli İzlemleme (Staging)
- 7.3 Saklama ve Silme
- 7.4 Çalışmanızı İmzalama
- 7.5 Arama
- 7.6 Geçmişi Yeniden Yazma
- 7.7 Reset Komutunun Gizemleri
- 7.8 İleri Seviye Birleştirme
- 7.9 Rerere
- 7.10 Git’le Hata Ayıklama
- 7.11 Alt Modüller
- 7.12 Demetleme (Bundling)
- 7.13 Git Nesnesini Değiştirme
- 7.14 Kimlik Bilgisi Depolama
- 7.15 Özet
-
8. Git’i Özelleştirmek
- 8.1 Git Yapılandırması
- 8.2 Git Nitelikleri
- 8.3 Git Kancaları (Hooks)
- 8.4 Bir Örnek: Mecburi Git Politikası
- 8.5 Özet
-
9. Git ve Diğer Sistemler
- 9.1 İstemci Olarak Git
- 9.2 Git’e Geçiş
- 9.3 Özet
-
10. Dahili Git Ögeleri
- 10.1 Tesisat ve Döşeme (Plumbing ve Porcelain)
- 10.2 Git Nesneleri
- 10.3 Git Referansları
- 10.4 Packfiles
- 10.5 Refspec
- 10.6 Transfer Protokolleri
- 10.7 Bakım ve Veri Kurtarma
- 10.8 Ortam Değişkenleri
- 10.9 Özet
-
A1. Ek bölüm A: Diğer Ortamlarda Git
- A1.1 Görsel Arayüzler
- A1.2 Visual Studio ile Git
- A1.3 Visual Studio Code ile Git
- A1.4 Eclipse ile Git
- A1.5 Sublime Text ile Git
- A1.6 Bash ile Git
- A1.7 Zsh ile Git
- A1.8 PowerShell ile Git
- A1.9 Özet
-
A2. Ek bölüm B: Git’i Uygulamalarınıza Gömmek
- A2.1 Git Komut Satırı
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Ek bölüm C: Git Komutları
- A3.1 Kurulum ve Yapılandırma Komutları
- A3.2 Proje Oluşturma Komutları
- A3.3 Kısaca Poz (Snapshot) Alma
- A3.4 Dallandırma ve Birleştirme Komutları
- A3.5 Projeleri Paylaşma ve Güncelleme Komutları
- A3.6 İnceleme ve Karşılaştırma Komutları
- A3.7 Hata Ayıklama (Debugging) Komutları
- A3.8 Yamalama (Patching)
- A3.9 E-Posta Komutları
- A3.10 Harici Sistemler
- A3.11 Yönetim
- A3.12 Tesisat (Plumbing) Komutları
A3.8 Ek bölüm C: Git Komutları - Yamalama (Patching)
Yamalama (Patching)
Git’teki birkaç komut, sanki katkı serisi bir dizi yamadan oluşuyormuşçasına, katkıların getirdikleri değişiklikler açısından düşünülmesi kavramı etrafında yoğunlaşmıştır. Bu komutlar dallarınızı bu şekilde yönetmenize yardımcı olur.
git cherry-pick
git cherry-pick
komutu, tek bir Git katkısında yapılan değişikliği almak ve bunu, o anda bulunduğunuz dalda yeni bir katkı olarak yeniden tanıtmayı denemek için kullanılır.
Bu komut, tüm değişiklikleri bulunduğunuz dalda birleşmek yerine, bir daldan yalnızca bir veya iki katkı almak zorunda kaldığınızda yararlı olabilir.
git cherry-pick
komutu Temelleme ve Ayıklama (Cherry-Picking) İş Akışları bölümünde anlatılmıştır.
git rebase
git rebase
komutu temelde otomatik bir git cherry-pick
komutudur.
Bir dizi katkı belirler ve ardından bunları başka bir yerde aynı sırayla tek tek işler.
Yeniden temellendirme (rebase) Yeniden Temelleme (rebase) bölümünde ayrıntılı olarak ele alınmakta olup, açık dallarda yeniden temellemeyle ilgili işbirliği konularına da yer verilmektedir.
Bunu pratikte, geçmişinizi Git Nesnesini Değiştirme bölümünde --onto
bayrağını kullanarak iki ayrı repoya bölme örneği sırasında kullandık.
Rerere bölümünde yeniden temellendirme sırasında bir birleştirme çatışması gösterdik.
Ayrıca Çoklu Katkı Mesajı Değişimi bölümünde -i
seçeneğiyle etkileşimli komut dosyası modunda da kullandık.
git revert
git revert
komutu aslında ters bir git cherry-pick
işlemidir.
Hedeflediğiniz katkıda yapılan değişikliğin tam tersini uygulayan, esasen onu geri alan veya geri döndüren yeni bir katkı oluşturur.
Bunu Katkıyı Geri Alma bölümünde birleştirme işlemini geri almak için kullandık.