Kısa Cevap: Belirli Bir Dal Nasıl Klonlanır
Bir git deposundan belirli bir dalı klonlamak için şu komutu kullanın:
git clone --single-branch --branch <branch_name> <repository_url>
<branch_name> yerine istediğiniz dalın adını, <repository_url> yerine de deponun URL’sini yazın. Bu komut, belirtilen dalın yerel bir kopyasını oluşturur ve o dal üzerinde doğrudan ve odaklı geliştirmeye başlamanızı sağlar.
Örnek
Bu makale boyunca şu depoyu kullanacağız. Öğrendiğiniz komutları kendi makinenizde denemek için bunu kullanabilirsiniz. Depoda üç dal bulunur:
main: Varsayılan dal; iki metin dosyası içerir.add-new-file: Üçüncü bir dosyanın eklendiği dal.modify-file: İkinci dosyanın değiştirildiği dal.
Şöyle add-new-file dalını klonlayabiliriz:
git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git
git clone Nedir?
Varsayılan olarak, git clone tüm depoyu yerel makinenizde yeni bir dizine kopyalamak, yani tüm dalları klonlamak üzere tasarlanmıştır. Sözdizimi şöyledir:
git clone <repository_url>
Örnek depoyu klonlamak için şunu yapabiliriz:
git clone https://github.com/fran-aubry/git-clone-example.git
Bu komutu çalıştırdıktan sonra, tüm dallar yerel makinenize kopyalanır. Ancak aynı anda yalnızca bir dalın dosyaları görünür; buna checkout yapılmış dal denir. Bir depoyu klonladıktan sonra, varsayılan dal (genellikle main veya master olarak adlandırılır) checkout yapılmış olur.

Dallar arasında geçiş
Tam bir klon yaptıktan sonra, git checkout komutunu kullanarak istediğiniz dala geçebilirsiniz. Örneğin, modify-file dalına geçmek için şunu yaparız:
git checkout modify-file

Klonlama derinliği
Git ile çalışırken, bir dal üzerindeki değişiklikler git commit komutu ile kaydedilir. Her commit, o dalın yeni bir hâlini oluşturur ve gerektiğinde buna geri dönebilirsiniz. Her commit’i bir anlık görüntü olarak düşünün; git bu görüntülerin tümünü takip eder. Bir dalı bu anlık görüntülerden herhangi birine dilediğiniz zaman döndürebilirsiniz.
Seçenek kullanılmadan çalıştırıldığında, git clone komutu tüm dallardaki tüm commit’leri yerel makinenize indirir. Projenin boyutuna bağlı olarak bu, yerel depolamada önemli miktarda alan kaplayabilir. Tüm geçmişe ihtiyaç duymayacağınızı biliyorsanız, kaç commit’in (veya anlık görüntünün) klonlanacağını belirtmek için --depth parametresini kullanabilirsiniz.
Yalnızca en son commit’i yükleyerek ana dalı klonlamak için şu komutu kullanın:
git clone --depth=1 https://github.com/fran-aubry/git-clone-example.git
Belirli Bir Dalı Klonlama
Bir depoyu nasıl git clone ile klonlayacağımızı öğrendik. Varsayılan olarak bu komut her şeyi yerel makinenize klonlar. Çoğu zaman yalnızca belirli bir dal üzerinde çalışmakla ilgilenirsiniz; bu durumda sadece o dalı klonlamak daha verimlidir. Bu yaklaşım disk alanından tasarruf sağlar ve klonlamadan sonra dallar arasında geçiş yapma ihtiyacı olmadan doğrudan çalışmaya başlamanıza olanak tanır.
Kitap yazma benzetmesinde, bir kitabın ikinci bölümünün yeniden yazımıyla görevlendirildiğinizi düşünün. Bu durumda, görevin yürütüldüğü dalı klonlamanız gerekir; diğer bölümlerin revizyonlarıyla ilgili dallara erişmeniz gereksizdir.
Git’e yalnızca tek bir dalı klonlamasını, --single-branch ve ardından dal adını belirten --branch argümanlarını ekleyerek söyleyebilirsiniz:
git clone --single-branch --branch <branch_name> <repository_url>
Komutu parçalara ayıralım:
git clone: Bir depoyu uzak kaynaktan yerel makinenize kopyalamak için kullanılan temel git komutudur.
--single-branch: Git’e yalnızca tek bir dalı klonlamasını söyler. Herhangi bir dal belirtilmezse varsayılan dal klonlanır.
--branch <branch_name>: Klonlanacak dalı belirtir. <branch_name> klonlamak istediğiniz dalın adıdır.<repository_url>: Deponun URL’sidir.
Örneğin, depomuzdan yalnızca modify-file dalını klonlamak için şunu yapabiliriz:
git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git
Klonlanan Bir Dalla Nasıl Çalışılır
Bir dal üzerinde çalışırken yapmanız gereken üç temel işlem vardır:
- Geçerli durumun bir anlık görüntüsünü oluşturarak mevcut çalışmanızı kaydetmek.
- Herkesin erişebilmesi için değişikliklerinizi yüklemek.
- Başkalarının değişikliklerini indirip kendi değişikliklerinizle birleştirmek.
git commit ile değişikliklerinizi kaydetme
Git’te çalışmanızı kaydetmeye commit oluşturma denir. Bu işlem, üzerinde çalıştığınız dalın mevcut hâlinin bir anlık görüntüsünü alır.
Dalın hâli her commit’ten sonra yerel makinenizde kaydedilir; böylece ilerlemenin farklı aşamaları arasında gezinebilirsiniz.

Git’te değişikliklerinizi commit etmek için git commit komutunu kullanırsınız. Ancak commit etmeden önce, git’in commit’e hangi dosyaları dahil edeceğini bilmesi gerekir. Kaydedilecek dosyaları git add komutuyla belirlersiniz. Bu komutun sözdizimi şöyledir:
git add <path_to_file>
Burada <path_to_file>, commit etmek istediğiniz dosyanın yoludur. Örneğin, örnek depomuzdaki modify-file dalındaysak ve file2.txt dosyasına bir paragraf eklediysek, şu komutla o dosyayı eklersiniz:
git add file2.txt
Commit’inize dahil etmek istediğiniz tüm dosyaları ekledikten sonra şu komutu çalıştırarak commit edebilirsiniz:
git commit -m <message>
Burada <message> argümanı, değişiklikleri kısaca anlatan ve çift tırnak içine alınmış öz bir mesaj olmalıdır. Örneğin:
git commit -m "Add paragraph"
Commit mesajı için bazı kurallar aşağıdadır. Projede çalışan herkes için netlik ve anlaşılabilirlik sağlamak açısından önemlidirler:
- Emir kipini kullanın: Commit mesajınıza emir kipindeki bir fiille başlayın (ör. “Add”, “Fix”, “Update”). Örneğin “Added new feature” yerine “Add new feature” yazın.
- Kısa ama açıklayıcı olun: İdeal olarak 50 karakterin altında, kısa bir mesaj hedefleyin. Ancak, değişiklikleri açıkça anlatmayı önceliklendirin. “Changed stuff” yerine “Update styling for navigation bar” yazın.
- Genel geçer mesajlardan kaçının: “Fix bugs” veya “Make improvements” gibi muğlak mesajlardan uzak durun. Bunun yerine, “Fix bug in login form validation” ya da “Improve readability of documentation” gibi somut olun.
git push ile değişikliklerinizi yükleme
Commit ettiğinizde, değişikliklerin bir anlık görüntüsünü yerel makinenizde oluşturursunuz. Başkalarının değişikliklerinize erişebilmesi için bunları yüklemeniz gerekir. Bunu yapmak için push komutunu kullanırsınız.
Git’te push komutunun temel sözdizimi şöyledir:
git push <remote> <branch>
Bunu da parçalayalım:
<remote>: Değişikliklerinizi göndermek istediğiniz uzak deponun adıdır. Varsayılan olarak, bir depoyu klonladığınızda uzak depo origin olarak adlandırılır.<branch>: Değişikliklerini uzak depoya göndermek istediğiniz dalın adıdır. Bu argümanı atlaranız, Git geçerli dal ve uzak izleme yapılandırmalarına göre push işlemi yapar.
git push için bazı yaygın kullanım örnekleri şunlardır:
- Geçerli daldan değişiklikleri göndermek:
git push - Belirli bir daldan değişiklikleri göndermek:
git push origin <branch>
git pull ile değişiklikleri indirme
Git, büyük ekiplerin aynı projede eşzamanlı çalışmasını sağlar. İş arkadaşlarınız sizin üzerinde çalıştığınız dalda değişiklik yaptığında, yerel dalınız uzak dala kıyasla güncelliğini yitirebilir.
Başkalarının commit’lerini indirmek için git pull komutunu kullanırız. Git’te pull komutunun temel sözdizimi şöyledir:
git pull <remote> <branch>
Her parametre şu işi yapar:
<remote>: Değişiklikleri çekmek istediğiniz uzak deponun adıdır. Varsayılan olarak bu depo origin olarak adlandırılır.<branch>: Değişiklikleri çekmek istediğiniz dalın adıdır. Belirtilmezse git, geçerli dal ve onun yukarı akış (upstream) dalını kullanır.
git pull komutunun bazı yaygın kullanım örnekleri şunlardır:
- Geçerli daldan değişiklikleri çekmek:
git pull - Belirli bir daldan değişiklikleri çekmek:
git pull origin <branch>
Commit-pull-push İş Akışı
Git kullanırken, yerel dalınızın güncel kalmasını sağlamak için sık sık güncelleme çekmenizi öneririm. Aşağıdaki iyi uygulamalara uymanızı tavsiye ederim:
- Çalışmaya başlamadan önce, en güncel sürüm üzerinde çalıştığınızdan emin olmak için geçerli dalınıza ait en son güncellemeleri çekin.
- Sık commit edin; her commit’in küçük ve mantıksal olarak ilişkili değişikliklere odaklanmasına dikkat edin.
- Bazı değişiklikler yapıp commit oluşturduktan sonra, eşzamanlı güncellemeler olmasına karşı dalınızı güncellemek için tekrar pull yapın.
- Son olarak, değişikliklerinizi uzak depoya push edin.

Git Çakışmaları
Uzak bir depodan değişiklikleri indirmek için git pull komutunu çalıştırırken, başka bir commit’in yerel commit’lerinizle aynı satırları değiştirmiş olmasıyla karşılaşabilirsiniz. Git değişiklikleri otomatik olarak birleştirmeye çalışır ve çoğu durumda bunda başarılıdır. Örneğin, aynı dosyanın farklı bölümlerinde değişiklik yapılmışsa, commit’ler farklı kısımları etkilediğinden Git bunları sorunsuzca birleştirebilir.
Ancak siz ve başka bir katkıcı aynı paragrafı düzenlediyseniz, git hangi sürümün tutulacağını belirleyemez ve bir birleştirme (merge) çakışması oluşur. Bu durumda, hangi değişikliklerin korunacağına karar vererek çakışmayı elle çözmeniz gerekir.
Çakışmaların çözümü hakkında daha fazla rehberlik için, şu makaleyi okumanızı öneririm: Git’te birleştirme çakışmaları nasıl çözülür.
GitHub’dan İndirme
Bazı durumlarda, değiştirme niyetiniz olmadan kullanmak üzere bir deponun yerel bir kopyasına ihtiyaç duyarsınız. Eğer depo herkese açıksa, yerel makinenize Git kurmanıza gerek yoktur. GitHub’dan doğrudan Code düğmesine, ardından Download Zip düğmesine tıklayarak indirebilirsiniz; aşağıda gösterildiği gibi:

Sonuç
Git klonlama, bir Git deposunu yerel makinenize kopyalamanızı sağlar; böylece kodu kullanabilir veya yeni işlevler ekleyerek genişletebilirsiniz. Bir depo klonlandığında tüm dallar indirilir; bu da önemli miktarda disk alanı tüketebilir.
Dallar, belirli değişiklikler veya özellikler üzerinde çalışmak için kullanılır. Belirli bir dalı klonlamak, ilgisiz çalışmaları indirmeden ilgili değişikliklere katkıda bulunmanızı sağlar; böylece çok daha az disk alanına ihtiyaç duyar ve yerel diskinizi daha derli toplu tutarsınız.
Konu hakkında daha fazla bilgi edinmek isterseniz bu Yeni Başlayanlar için GitHub ve Git Eğitimi yazısını öneririm.


Bir kitap yazdığınızı ve özgün metni bozmadan yeni fikirlerle denemeler yapmak istediğinizi hayal edin. Taslakları ayrı tutmak için her fikir için yeni bir defter açabilirsiniz.
Bir sürüm kontrol sistemi olan Git, yazılım geliştiricilerin kodda bunu “dallar” aracılığıyla yapmasına olanak tanır. Her dal, ayrı bir geliştirme yolu gibidir; ana kod tabanını etkilemeden değişiklikleri keşfetmenizi sağlar.
Bu yazıda sizi
git clonekomutunun kullanımı konusunda, özellikle de belirli dalları klonlama üzerine yönlendireceğim. Git hakkında daha fazla bilgi edinmek isterseniz, bu Introduction to Git kursunu öneririm.Acele edenler için kısa bir yanıtla başlayalım. Ardından daha fazla ayrıntıya gireceğiz.