-
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.4 Ek bölüm C: Git Komutları - Dallandırma ve Birleştirme Komutları
Dallandırma ve Birleştirme Komutları
Git’te dallanma ve birleştirme işlevlerinin çoğunu uygulayan yalnızca birkaç komut vardır.
git branch
git branch
komutu aslında bir tür dal yönetim aracıdır.
Sahip olduğunuz dalları listeleyebilir, yeni dal oluşturabilir, dalları silebilir ve dalların adını değiştirebilir.
Git Dalları bölümünün çoğu git branch
komutuna ayrılmıştır ve tüm bölüm boyunca kullanılmıştır.
Bunu ilk olarak Yeni bir Dal Açma bölümnde tanıttık ve diğer özelliklerinin çoğunu (listeleme ve silme) Dal Yönetimi bölümünde inceledik.
Dalları Takip bölümünde bir izleme dalı oluşturmak için git Branch -u
seçeneğini kullandık.
Son olarak Git Referansları bölümünde arka planda yaptıklarından bazılarını inceledik.
git checkout
git checkout
komutu, dalları değiştirmek ve içeriği çalışma dizininize aktarmak için kullanılır.
Komutla ilk olarak Dallararası Geçiş bölümünde git Branch
komutuyla karşılaştık.
Dalları Takip bölümünde --track
bayrağının dalları izlemeye başlamak için nasıl kullanılacağını gördük.
Çakışmaları Kontrol Etme bölümünde --conflict=diff3
bayrağıyla dosya çakışmalarını yeniden ortaya çıkarmak için kullandık.
Reset Komutunun Gizemleri bölümünde git reset
ile olan ilişkisini daha ayrıntılı olarak ele aldık.
Son olarak HEAD (baş/uç) bölümünde bazı uygulama ayrıntılarına girdik.
git merge
git merge
birleştirme aracı, bir veya daha fazla dalı üzerinde bulunduğunuz dalla birleştirmek için kullanılır.
Daha sonra mevcut dalınızı birleştirme sonucuna ilerletecektir.
git merge
komutu ilk olarak Dallandırma bölümünde tanıtıldı.
Kitabın çeşitli yerlerinde kullanılmasına rağmen, git merge
komutunun çok az türü vardır - genellikle yalnızca birleştirmek istediğiniz tek dalın adını içeren git merge <branch>
sözdizimi.
Çatallanmış Açık Projeler bölümünün en sonunda sıkıştırılmış birleştirmenin (Git’in işi birleştirdiği ancak birleştirdiğiniz dalın geçmişini kaydetmeden, sadece yeni bir katkı işliyormuş gibi davrandığı) nasıl yapılacağını ele aldık.
İleri Seviye Birleştirme bölümünde sorunlu bir birleştirmeyi iptal etmek için -Xignore-space-change
komutu ve --abort
bayrağı da dahil olmak üzere, birleştirme işlemi ve komutu hakkında birçok şeyi gözden geçirdik.
Projeniz GPG oturum açmayı kullanıyorsa, birleştirmeden önce imzaları nasıl doğrulayacağımızı Katkıları İmzalama bölümünde öğrendik.
Son olarak Alt Ağaç Birleştirme bölümde alt-ağaçları birleştirmeyi öğrendik.
git mergetool
git mergetool
komutu, Git’te birleştirmeyle ilgili sorun yaşamanız durumunda harici bir birleştirme yardımcısını başlatır.
Birleştirme Çakışması (merge conflict) bölümünde bundan kısa bir şekilde değinip ve Harici Birleştirme ve Fark Araçları bölümünde kendi harici birleştirme aracınızı nasıl uygulayacağınız konusunda ayrıntılara girdik.
git log
git log
komutu, bir projenin ulaşılabilir kayıtlı geçmişini en son pozdan geriye doğru göstermek için kullanılır.
Varsayılan olarak yalnızca o anda bulunduğunuz dalın geçmişini gösterir, ancak temas edeceğiniz başka dalları ve hatta birden fazla başlık veya dalı argüman olarak verebilirsiniz.
Yine de genellikle iki veya daha fazla dal arasındaki farkları katkı düzeyinde göstermek için kullanılır.
Bu komut kitabın neredeyse her bölümünde bir projenin geçmişini göstermek için kullanıldı.
Katkı Geçmişini Görüntüleme bölümünde komutu tanıtıp, detaylı olarak ele alacağız.
Burada, her bir katkıda nelerin tanıtıldığı hakkında bir fikir edinmek için -p
ve --stat
seçeneğine ve geçmişi daha kısa bir şekilde görüntülemek için, bazı basit tarih ve yazar filtreleme seçenekleriyle birlikte --pretty
ve --oneline
seçeneklerine baktık.
Yeni bir Dal Açma bölümünde, dal işaretçilerimizin nerede bulunduğunu kolayca görselleştirmek için bunu --decorate
seçeneğiyle birlikte ve ayrıca farklı geçmişlerin nasıl göründüğünü görmek için --graph
seçeneğiyle kullandık.
Küçük Özel Ekipler ve Katkı Aralığı bölümlerinde, hangi katkıların dala özel ve hangi dalla ilişkili olduğunu görmek için git log
komutunu kullanmak üzere branchA..branchB
sözdizimini ele aldık.
Katkı Aralığı bölümünde ise bunu oldukça kapsamlı bir şekilde inceledik.
Merge Günlüğü ve Üçlü Nokta (…) bölümlerinde branchA...branchB
biçim ve --left-right
sözdizimini kullanarak, iki dalın birbirinden farkını görmeyi ele aldık.
Merge Günlüğü bölümünde, birleştirme çakışması yaşadığımızda hata ayıklamasına yardımcı olmak için --merge
ve --cc
seçeneklerinin nasıl kullanılacağına baktık.
Referans Günlüğü (Reflog) Kısa Adları bölümnünde, git reflog
'u dal geçişi yerine, bu araç aracılığıyla görüntülemek için -g
seçeneğini kullandık.
Arama bölümünde, kodda tarihsel olarak meydana gelen bir şeyi (bir fonksiyonun geçmişini görmek gibi) bulmak için oldukça karmaşık aramalar yapmak üzere -S
ve -L
seçeneklerini kullanmayı öğrendik.
Katkıları İmzalama bölümünde, git log
çıktısındaki her bir katkıyı geçerli bir şekilde imzalanıp imzalanmadığına bağlı olarak, bir doğrulama dizesi eklemek için --show-signature
komutunun nasıl kullanılacağımızı gördük.
git stash
git stash
komutu, bir dalda tamamlanmamış işleri bitirmek zorunda kalmadan, (çalışma dizininizi temizlemek amacıyla) kaydedilmemiş işleri geçici olarak depolamak için kullanılır.
Bu konu tamamen Saklama ve Silme bölümünde ele alınmıştır.
git tag
git tag
komutu, kod geçmişindeki belirli bir noktaya, kalıcı bir yer imi vermek için kullanılır.
Genellikle sürümleri etiketlemek gibi şeyler için kullanılır.
Bu komut Etiketleme bölümünde tanıtılmış ve ayrıntılı olarak ele alınmıştır ve bunu pratik olarak Sürümü Etiketlemek bölümünde kullandık.
Ayrıca Çalışmanızı İmzalama bölümünde -s
bayrağıyla GPG imzalı bir etiketin nasıl oluşturulacağını ve -v
bayrağıyla nasıl doğrulanacağını da ele aldık.