-
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ı
A2.1 Ek bölüm B: Git’i Uygulamalarınıza Gömmek - Git Komut Satırı
Uygulamanız geliştiricilere yönelikse, kaynak kontrolüyle entegrasyondan faydalanma ihtimali yüksektir. Belge düzenleyiciler gibi geliştirici olmayan uygulamalar bile sürüm kontrol özelliklerinden potansiyel olarak yararlanabilir ve Git’in modeli, birçok farklı senaryo için çok iyi çalışır.
Git’i uygulamanızla entegre etmeniz gerekiyorsa, aslında iki seçeneğiniz vardır: bir shell oluşturup git
komut satırı programını çağırın veya uygulamanıza bir Git kitaplığı ekleyin.
Burada komut satırı entegrasyonunu ve en popüler gömülebilir Git kitaplıklarından birkaçını ele alacağız.
Git Komut Satırı
Seçeneklerden biri, bir shell işlemi oluşturmak ve işi yapmak için Git komut satırı aracını kullanmaktır. Bunun genel kabuledilen olma avantajı vardır ve Git’in tüm özellikleri desteklenir. Aynı zamanda oldukça kolaydır, çünkü çoğu çalışma zamanı (runtime) ortamı, komut satırı argümanlarıyla bir işlemi çağırmak için nispeten basit bir özelliğe sahiptir. Ancak bu yaklaşımın bazı eksileri vardır.
Birincisi, tüm çıktının düz metin halinde olmasıdır. Bu, ilerleme ve sonuç bilgilerini okumak için, Git’in ara sıra değişen çıktı formatını ayrıştırmanız gerekeceği anlamına gelir; bu da verimsiz ve hataya açık olabilir.
Bir diğeri ise hata kurtarmanın olmamasıdır. Bir repo bir şekilde bozulmuşsa veya kullanıcının hatalı biçimlendirilmiş bir yapılandırma değeri varsa; Git birçok işlemi gerçekleştirmeyi reddedecektir.
Bir diğeri ise süreç yönetimidir. Git ayrı bir süreçte bir shell ortamını korumanızı ister, bu da bu karmaşayı gereksiz bir arttırabilir. Bu süreçlerin çoğunu koordine etmeye çalışmak (özellikle birden fazla süreçten aynı repoya erişme potansiyeli varsa) oldukça zor olabilir.