-
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ı
1.2 Başlangıç - Git’in Kısa Tarihçesi
Git’in Kısa Tarihçesi
Hayattaki harika olan diğer pek çok şey gibi, Git de yaratıcı yıkım ve ateşli tartışmaların sonucunda ortaya çıktı.
Linux kerneli oldukça geniş bir kapsama sahip bir açık kaynaklı yazılım projesidir. Linux çekirdeğinin bakım süresinin büyük bir kısmında (1991-2002) yapılan değişiklikler, yamalar ve arşivlenmiş dosyalarla aktarıldı. 2002 yılında Linux kernel projesi tescilli bir dağıtık sürüm denetim sistemi olan Bitkeeper’i kullanmaya başladı.
2005 yılında Linux çekirdeğini geliştiren toplulukla Bitkeeper’i geliştirmiş olan ticari şirket arasındaki ilişkiler koptu ve o zamana kadar ücretsiz olan Bitkeeper’in dağıtık sürüm denetim sistemi artık ücretli hale geldi.
Bu da Linux’u geliştiren topluluğun (özellikle Linux’un yaratıcısı olan Linus Torvalds’ın) Bitkeeper’i kullanırken edindiği deneyimler üzerinden kendi dağıtık sürüm denetim sistemini geliştirmek istemesine sebep oldu.
Geliştirilecek olan yeni sistemin bazı hedefleri şunlardı:
-
Hız
-
Minimal tasarım
-
Doğrusal olmayan geliştirme için güçlü destek (binlerce paralel dal desteği)
-
Tamamen dağıtık olması
-
Devasa projeleri (hız ve veri büyüklüğü açısından) Linux çekirdeği verimliliğinde destekleyebilmesi
2005 yılında ortaya çıkışından beri Git, kullanımı kolay olacak şekilde hem evrilip hem de olgunlaşmasına rağmen, ilk baştaki hedeflerini ve özelliklerini koruyabildi. Müthiş derecede hızlı, devasa projelerde bile inanılmaz ölçüde verimli ve doğrusal olmayan geliştirme için harika bir dallanma sistemine sahip. (Daha fazlası için: Git Dalları)