-
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.5 Ek bölüm C: Git Komutları - Projeleri Paylaşma ve Güncelleme Komutları
Projeleri Paylaşma ve Güncelleme Komutları
Git’te ağa erişen çok fazla komut yoktur, komutların neredeyse tamamı yerel veritabanı üzerinde çalışır. Çalışmanızı paylaşmaya veya değişiklikleri başka bir yerden almaya hazır olduğunuzda, uzak repolarla ilgilenen birkaç komut vardır.
git fetch
git fetch
komutu uzak bir repoyla iletişim kurar, o repoda bulunan ama sizin mevcut reponuzda olmayan tüm bilgileri getirir ve bunları yerel veritabanınızda saklar.
Bu komuta ilk olarak Uzak Sunucudan Getirme ve Çekme bölümünde baktık ve kullanımına ilişkin örnekleri Uzak Dallar bölümünde incelemeye devam ettik.
Bunu ayrıca Projenin Gelişiminde Rol Almak bölümündeki örneklerin birçoğunda da kullandık.
Bunu Birleştirme İsteği Referansları bölümünde, varsayılan alanın dışındaki tek bir spesifik referansı getirmek için kullandık ve Demetleme (Bundling) bölümünde bir paketten nasıl getirileceğini gördük.
git fetch
'in Refspec bölümündeki varsayılandan biraz farklı bir şey yapmasını sağlamak için çok özel refspec’ler ayarladık.
git pull
git pull
komutu temel olarak git fetch
ve git merge
komutlarının bir birleşimidir; burada Git, belirttiğiniz uzak repodan farklılıkları alır ve onu hemen bulunduğunuz dalla birleştirmeye çalışır.
Bunu hızlı bir şekilde Uzak Sunucudan Getirme ve Çekme bölümünde tanıttık ve Uzak Sunucunun İncelenmesi bölümünde, komutu çalıştırdığınızda nelerin birleşeceğini nasıl göreceğinizi gösterdik.
Ayrıca Yeniden Temelleme Yaparken Dikkat Edilmesi Gerekenler bölümünde yeniden temelleme zorluklarına yardımcı olmak için, onu nasıl kullanacağımızı da gösterdik.
Uzak Dallara Geçmek bölümünde değişiklikleri tek seferlik bir şekilde almak için bunun bir URL ile nasıl kullanılacağını gösterdik.
Son olarak Katkıları İmzalama bölümünde, çektiğiniz katkıların GPG imzalı olup olmadığını doğrulamak için --verify-signatures
seçeneğini kullanabileceğinizi belirttik.
git push
git push
komutu başka bir repoyla iletişim kurmak, yerel veritabanınızın uzaktaki veritabanından farkını hesaplamak ve ardından aradıki farkı diğer repoya itmek için kullanılır.
Bu komut doğal olarak diğer repoya yazma erişimi gerektirir ve bu nedenle de bir kimlik doğrulaması yapılır.
İlk önce Kodlarınızı Uzak Sunucuya İtmek bölümünde git Push
komutunu tanıttık.
Burada bir dalı uzak bir repoya göndermenin temellerini ele aldık.
İtme bölümünde belirli dallara itme konusunda biraz daha derinlere indik ve Dalları Takip bölümünde izlenen dalları otomatik olarak itme yapılacak şekilde nasıl ayarlayacağını gösterdik.
Uzak Dalları Silmek bölümünde sunucudaki bir dalı silmek için git push
ile --delete
bayrağını kullandık.
Projenin Gelişiminde Rol Almak boyunca, dallardaki çalışmayı birden fazla uzak repo aracılığıyla paylaşmak için git push
komutunu kullanmanın birkaç örneğini gösterdik.
Etiketleri Paylaşma bölümünde --tags
seçeneğiyle oluşturduğunuz etiketleri paylaşmak için nasıl kullanılacağımızı anlattık.
Alt Modül Değişikliklerini Yayınlama bölümünde, süper projeyi göndermeden önce tüm alt modül çalışmalarımızın yayınlandığını kontrol etmek için --recurse-submodules
seçeneğini kullandık ki alt modülleri kullanırken bu gerçekten yararlı olur.
Diğer İstemci Kancaları bölümünde, bir itmeye izin verilmesi gerektiğini doğrulamak için bir itme tamamlanmadan önce çalıştırılacak şekilde ayarlayabileceğimiz bir komut dosyası olan `pre-push kancasından kısaca bahsettik.
Son olarak Refspec’leri İtmek bölümünde, normalde kullanılan genel kısayollar yerine tam bir refspec ile itme işlemine baktık. Bu, hangi çalışmayı paylaşmak istediğiniz konusunda çok spesifik davranabilmenize yardımcı olabilir.
git remote
git remote
komutu, uzak repolara ilişkin kayıtlarınız için bir yönetim aracıdır.
Uzun URL’leri ``origin`` gibi kısaltılmış olarak kaydetmenize olanak tanır, böylece bunları her zaman yazmanıza gerek kalmaz.
Bunlardan birkaçına sahip olabilirsiniz ve bunları eklemek, değiştirmek ve silmek için git remote
komutu kullanılır.
Bu komut, listeleme, ekleme, kaldırma ve yeniden adlandırma da dahil olmak üzere Uzak Repo ile Çalışmak bölümünde ayrıntılı olarak ele alınmıştır.
Bu komut kitabın hemen hemen her bölümünde kullanılmakla birlikte, her zaman standart git remote add <isim> <link>
biçiminde yazılmıştır.
git archive
git archive
komutu, projenin belirli bir pozunun arşiv dosyasını oluşturmak için kullanılır.
git archive
komutunu Bir Sürüm Hazırlama bölümünde paylaşmak üzere olduğumuz bir projenin tarball’ını oluşturmak için kullandık.
git submodule
git submodule
komutu normal bir repodaki harici repoları yönetmek için kullanılır.
Bu, kütüphaneler veya diğer türde paylaşılan kaynaklar için de olabilir.
git submodule
komutu, bu kaynakları yönetmek için çeşitli alt komutlara (add
, update
, sync
, vb) sahiptir.
Bu komuttan yalnızca Alt Modüller bölümünde bahsedilmiş ve tamamı anlatılmıştır.