-
1. Başlangıç
- 1.1 Sürüm Kontrolü Hakkında
- 1.2 Git'in Kısa Bir Tarihçesi
- 1.3 Git'in Temelleri
- 1.4 Git'in Kurulumu
- 1.5 İlk Ayarlamalar
- 1.6 Yardım Almak
- 1.7 Özet
-
2. Git'in Temelleri
-
3. Git'te Dallanma
- 3.1 Dal Nedir?
- 3.2 Dallanma ve Birleştirmenin Temelleri
- 3.3 Dal Yönetimi
- 3.4 Dallanma İş Akışları
- 3.5 Uzak Uçbirim Dalları
- 3.6 Rebasing ## Zemin, Kök, Temel
- 3.7 Summary
-
4. Git on the Server
- 4.1 The Protocols
- 4.2 Getting Git on a Server
- 4.3 Generating Your SSH Public Key
- 4.4 Setting Up the Server
- 4.5 Public Access
- 4.6 GitWeb
- 4.7 Gitosis
- 4.8 Gitolite
- 4.9 Git Daemon
- 4.10 Hosted Git
- 4.11 Summary
-
5. Distributed Git
- 5.1 Distributed Workflows
- 5.2 Contributing to a Project
- 5.3 Maintaining a Project
- 5.4 Summary
-
6. Git Tools
- 6.1 Revision Selection
- 6.2 Interactive Staging
- 6.3 Stashing
- 6.4 Rewriting History
- 6.5 Debugging with Git
- 6.6 Submodules
- 6.7 Subtree Merging
- 6.8 Summary
-
7. Customizing Git
- 7.1 Git Configuration
- 7.2 Git Attributes
- 7.3 Git Hooks
- 7.4 An Example Git-Enforced Policy
- 7.5 Summary
-
8. Git and Other Systems
- 8.1 Git and Subversion
- 8.2 Migrating to Git
- 8.3 Summary
-
9. Git Internals
- 9.1 Plumbing and Porcelain
- 9.2 Git Objects
- 9.3 Git References
- 9.4 Packfiles
- 9.5 The Refspec
- 9.6 Transfer Protocols
- 9.7 Maintenance and Data Recovery
- 9.8 Summary
2.1 Git'in Temelleri - Bir Git Yazılım Havuzu Edinmek
Bir Git Yazılım Havuzu Edinmek
Bir Git projesi edinmenin başlıca iki yolu vardır. Bunlardan ilki, halihazırda varolan bir projeyi Git'e aktarmaktır. İkincisi ise bir sunucuda yer alan bir Git yazılım havuzunu klonlamakdır.
Varolan Bir Klasörde Yazılım Havuzu Oluşturmak
Varolan bir projenizi sürüm kontrolü altına almak istiyorsanız, projenin bulunduğu klasöre gidip aşağıdaki komutu çalıştırmanız gerekir:
$ git init
Bu, gerekli yazılım havuzu dosyalarını —Git iskeletini— içeren .git adında bir klasör oluşturur. Bu noktada, projenizdeki hiçbir şey sürüm kontrolüne girmiş değildir. (Oluşturulan .git klasöründe tam olarak hangi dosyaların bulunduğu hakkında daha fazla bilgi edinmek için bkz. 9. Bölüm.)
Varolan dosyalarınızı sürüm kontrolüne almak istiyorsanız, o dosyaları hazırlayıp kayıt etmelisiniz. Bunu, sürüm kontrolüne almak istediğiniz dosyaları belirleyip kayıt altına aldığınız birkaç git komutuyla gerçekleştirebilirsiniz:
$ git add *.c
$ git add README
$ git commit -m 'projenin ilk hali'
Birazdan bu komutların üzerinde duracağız. Bu noktada, sürüm kontrolüne aldığınız dosyaları içeren bir Git yazılım havuzunuz var.
Varolan Bir Yazılım Havuzunu Klonlamak
Varolan bir Git yazılım havuzunu klonlamak istiyorsanız —söz gelimi, katkıda bulunmak istediğiniz bir proje varsa- ihtiyacınız olan komut git clone. Subversion gibi başka SKS'lere aşinaysanız, komutun checkout değil clone olduğunu fark etmişsinizdir. Bu önemli bir ayrımdır —Git, sunucuda bulunan neredeyse bütün veriyi kopyalar. git clone komutunu çalıştırdığınızda her dosyanın proje tarihçesinde bulunan her sürümü istemciye indirilir. Hatta, sunucunuzun diski bozulacak olsa, herhangi bir istemcideki herhangi bir klonu, sunucuyu klonlandığı zamanki haline geri getirmek için kullanabilirsiniz (sunucunuzdaki bazı çengel betikleri (hook) kaybedebilirsiniz, ama sürümlenmiş verinin tamamı elinizin altında olacaktır —daha fazla ayrıntı için bkz. 4. Bölüm)
Bir yazılım havuzu git clone [url] komutuyla klonlanır. Örneğin, Grit adlı Ruby Git kütüphanesini klonlamak isterseniz, bunu şu şekilde yapabilirsiniz:
$ git clone git://github.com/schacon/grit.git
Bu komut grit adında bir klasör oluşturur, bu klasörün içinde bir .git alt dizini oluşturup ilklemesini yapar, söz konusu yazılım havuzunun bütün verisini indirir ve son sürümünün bir koyasını seçer (checkout). Bu yeni grit klasörüne gidecek olursanız, kullanılmaya ve üzerinde çalışılmaya hazır proje dosyalarını görürsünüz. Yazılım havuzunu adı grit'ten farklı bir klasöre kopyalamak isterseniz, bunu komut satırı seçeneği olarak vermelisiniz:
$ git clone git://github.com/schacon/grit.git mygrit
Bu komut da bir öncekiyle aynı şeyleri yapar, fakat oluşturulan klasörün adı mygrit'tir.
Git'in bir dizi farklı transfer protokolü vardır. Yukarıdaki örnek git:// protokolünü kullanıyor, ama http(s)://'in ya da SSH transfer protokolünü kullanan user@server:/path.git'in kullanıldığına da tanık olabilirsiniz. 4. Bölüm'de Git yazılım havuzuna erişmek için sunucunun kullanabileceği bütün geçerli seçenekleri ve bunların olumlu ve olumsuz yanlarını inceleyeceğiz.