-
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
3.3 Git'te Dallanma - Dal Yönetimi
Dal Yönetimi
Dal yaratma, birleştirme ve silme işlemlerini yaptığımıza göre, gelin şimdi de dallar üzerinde çalışırken işimize yarayacak kimi dal-yönetim araçlarına gö atalım.
git branch komutu dal yaratmak ve silmekten fazlasını yapar. Bu komutu hiçbir seçenek kullanmadan çalıştırırsanız, mevcut dallarınızın bir listesini görürsünüz:
$ git branch
iss53
* master
testing
master dalının önündeki * karakterine dikkatinizi çekmiştir: bu, o dalı seçmiş olduğunuzu (checkout) gösteriyor. Yani, bu noktada bir kayıt yapacak olursanız, yeni değişikliğiniz master dalını ileri götürecek. Herbir dalın en son kaydının ne olduğunu görmek isterseniz git branch -v komutunu çalıştırabilirsiniz:
$ git branch -v
iss53 93b412c fix javascript issue
* master 7a98805 Merge branch 'iss53'
testing 782fd34 add scott to the author list in the readmes
Dallarınızın ne durumda olduğunu incelerken yararlı olacak bir başka şey de, hangi dalların üzerinde bulunduğunuz dalla birleştirilip hangisinin birleştirilmediğini görmek olabilir. --merged ve --no-merge seçenekleri Git'in 1.5.6 sürümünden itibaren kullanıma sunulmuştur. Hangi dalların üzerinde bulunduğunuz dalla birleştirilmiş olduğunu görmek için git branch --merged komutunu kullanabilirsiniz:
$ git branch --merged
iss53
* master
iss53 dalını daha önce birleştirdiğiniz için listede görüyorsunuz. Bu listede önünde * olmayan dalları git branch -d komutula silebilirsiniz; onlardaki değişiklikleri zaten başka bir dalla birleştirdiğiniz için, herhangi bir kaybınız olmaz.
Henüz birleştirmediğiniz değişikliklerin bulunduğu dalları görmek için git branch --no-merged komutunu çalıştırabilirsiniz:
$ git branch --no-merged
testing
Burada diğer dalı görüyorsunuz. Bu dalda henüz birleştirmediğiniz değişiklikler bulunduğu için git branch -d komutu hata verecektir:
$ git branch -d testing
error: The branch 'testing' is not an ancestor of your current HEAD.
If you are sure you want to delete it, run 'git branch -D testing'.
Oradaki değişiklikleri kaybetmeyi göze alarak dalı her şeye rağmen silmek istiyorsanız, yukarıdaki çıktıda da belirtildiği gibi, -D seçeneğiyle üsteleyebilirsiniz.