Git Clone Komutu: Depo Kopyalama ve Temel Seçenekleri
git clone komutu, mevcut bir Git deposunun tam bir kopyasını yerel makinenizde yeni bir dizine oluşturur. Bu işlem, uzaktaki (remote) her dal için izleme dalları (tracking branches) kurar ve kaynak depoya işaret eden origin adında bir uzaktan bağlantı (remote) oluşturur.
Bu makale, git clone komutunun en yaygın seçeneklerini ve protokollerini nasıl kullanacağınızı açıklamaktadır.
Temel Sözdizimi
git clone komutunun temel sözdizimi aşağıdaki gibidir:
git clone [SEÇENEKLER] REPOSITORY [DIZIN]
REPOSITORY: Kopyalanacak deponun URL'si veya yerel yolu.DIZIN(İsteğe bağlı): Klonun oluşturulacağı hedef dizin. Belirtilmezse, Git depo adını kullanır.
Uzaktan Bir Depoyu Kopyalama (HTTPS ve SSH)
En yaygın klonlama yöntemi HTTPS üzerinden yapılır. Bu, genellikle kimlik doğrulama gerektirir (kullanıcı adı/şifre veya kişisel erişim belirteci).
$ git clone https://github.com/kullanici/repo.git
Bu komut, mevcut çalışma dizininde repo adında bir dizin oluşturur, içine .git dizinini kurar ve varsayılan dalı (genellikle main) otomatik olarak indirip kontrol eder.
Eğer SSH anahtarlarınız yapılandırılmışsa, SSH üzerinden klonlama tercih edilir çünkü bu, kimlik bilgisi girme zorunluluğunu ortadan kaldırır:
$ git clone git@github.com:kullanici/repo.git
Belirli Bir Dizin İçine Klonlama
Deponun adıyla aynı isimde bir dizin oluşturulmasını istemiyorsanız, hedef yolu ikinci argüman olarak belirtebilirsiniz:
$ git clone https://github.com/kullanici/repo.git benim-yeni-projem
Klonlama işlemini mevcut dizinin içine yapmak için (dizinin boş olması koşuluyla) nokta . kullanılır:
$ git clone https://github.com/kullanici/repo.git .
UYARI: Mevcut dizine klonlama (
.kullanılarak) yalnızca o dizin tamamen boşsa başarılı olur. Aksi takdirde Git hata verecektir.
Belirli Bir Dalı Klonlama
Varsayılan olarak, git clone ana dalı indirir. Farklı bir dalı (örneğin develop) indirip kontrol etmek için -b seçeneği kullanılır:
$ git clone -b develop https://github.com/kullanici/repo.git
Bu işlem tüm geçmişi indirir, ancak başlangıçta develop dalında çalışmaya başlarsınız. Eğer indirme boyutunu azaltmak ve yalnızca o dalın geçmişini almak istiyorsanız, --single-branch seçeneğini ekleyin:
$ git clone -b develop --single-branch https://github.com/kullanici/repo.git
Sığ Klonlama (Shallow Clone)
Çok büyük depolarda, tüm geçmişi indirmek yerine yalnızca belirli sayıda son commit'i indirmek zaman kazandırır. Buna sığ klonlama denir ve CI/CD ortamlarında yaygındır. Yalnızca en son commit'i indirmek için --depth 1 kullanılır:
$ git clone --depth 1 https://github.com/kullanici/repo.git
Sığ klonlamayı daha sonra tam klonlamaya dönüştürmek için:
$ git fetch --unshallow
Yerel Depo Kopyalama
git clone yerel dosya yollarıyla da çalışır. Bu, test veya izolasyon amaçlı bir kopyasını oluşturmak için kullanışlıdır:
$ git clone /yerel/yol/mevcut/repo yeni-kopya
Sıkça Sorulan Sorular (SSS)
- HTTPS ve SSH Arasındaki Fark Nedir? HTTPS kimlik doğrulaması gerektirir (token veya şifre), SSH ise yapılandırılmış anahtarlar kullanır ve genellikle daha sorunsuzdur.
- Tüm Dalları İndirir mi? Evet,
git clonetüm dalların referanslarını indirir ancak varsayılan dalı kontrol eder. Diğer dallara geçmek içingit checkoutkullanılır.
Hızlı Başvuru Tablosu
| Komut | Açıklama |
|---|---|
git clone URL |
Depoyu kopyala (varsayılan ayarlar) |
git clone -b dal_adi URL |
Belirli bir dalı kontrol et |
git clone --depth 5 URL |
Son 5 commit'i sığ klonla |
Çözüm (Troubleshooting)
Kimlik Doğrulama Hatası (HTTPS): Çoğu servis artık şifre yerine Kişisel Erişim Belirteçleri (PAT) gerektirir. Kimlik yöneticisi kullanın veya PAT ile giriş yapın.
İzin Reddedildi (publickey) (SSH): SSH anahtarınızın doğru yapılandırıldığından, SSH ajanı tarafından yüklendiğinden ve hosting servisine eklendiğinden emin olun.



