GitHub deposunun içeriğini klonla (klasörün kendisi olmadan)


234

GitHub'dagit clone bulunan bir havuzun içeriğini istiyorum . Ne zaman (git @ github: me / name.git ...) adında bir klasör alıyorum ve adın içinde içeriğim var ... İçeriği SADECE nasıl alabilirim?git clonename/



Ağ kaynaklarını kaydetmek için gereksiz nesneleri indirmeyi atlamak için: stackoverflow.com/questions/600079/…
— Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功 11:18

Yanıtlar:


315

Geçerli dizin boşsa, bunu aşağıdakilerle yapabilirsiniz:

git clone git@github:me/name.git .

( .Geçerli dizini belirtmek için en sondaki notu not edin .) Tabii ki bu, .gitdizini yalnızca projenizdeki kaynak kodunu değil, geçerli klasörünüzde de oluşturur .

Bu isteğe bağlı [directory]parametre , var olan bir dizine klonlamaya yalnızca o dizin boş olduğunda izin verildiğine işaret eden git clonemanuel sayfada belgelenmiştir .


2
Maalesef, aynı dizinde zaten başka, ilgili olmayan dizinler varsa bu işe yaramaz. Bir çözüm mü arıyorsunuz. Hata mesajı: "ölümcül: hedef yol '." zaten var ... "
— John Little

12
Git klonları dizini boş olmalıdır
— jolyonruss

1
Bir ekleme @HumaunRashid .Yanıtta tartışıldığı gibi: git clone https://github.com/humaun21/Test .. Ve evet, git@github.me/name.gitgerçek git repo adresiniz ne olursa olsun bir yer tutucudur.
— Aaron Campbell

1
@JohnLittle Aynı sorun vardı, orada gizlenen gizli bir .DS_Store dosyası var. Basitçe rm .DS_Storeve gitmekte fayda var.
— Mart'ta Selrond

1
Linux işletim sistemi üzerinde çalışıyorsanız, gizli dosyaları ve alt dizinleri kontrol etmek de dahil olmak üzere dizinin boş olduğundan emin olmanız gerekir. Bunu ls -a ile yapabilirsiniz. Sadece sahip olmalısın. ve .. çıktı olarak. Bu aksi halde çalışmayacak
— Ayo Makanjuola

156

Maalesef, aynı dizinde zaten alakalı olmayan diğer dizinler varsa bu işe yaramaz. Bir çözüm mü arıyorsunuz. Hata mesajı: "ölümcül: hedef yol '." zaten var...".

Bu durumda çözüm:

git init
git remote add origin git@github.com:me/name.git
git pull origin master

Bu tarif, teslim almak istediğiniz dizinde başka dizinler olsa bile işe yarar.


Hey bu izin <genel anahtar> izin reddedildi gibi bir hata alıyorum. Diğer taraf beklenmedik şekilde kapattı.
— Stan

Sonra değil github.comorada olmalı mıydı git remote ..., sadece değil githubmi?
— amn

5
Bu cevap kabul edilmiş olmalı. Mükemmel çalışıyor.
— Vikramvi

Burada başka bir yerde daha git fetch --allönce koşmanız gerektiğini okudum git pull origin master, çünkü repoda başka şubeler varsa, ilk git pullkullanmadıkça bunları alamazsınız fetch. Bu doğru mu?
— Alex G

38

Klasör boş değilse, @ JohnLittle'ın yanıtının biraz değiştirilmiş bir sürümü benim için çalıştı:

git init
git remote add origin https://github.com/me/name.git
git pull origin master

@ Peter kordonlarının işaret ettiği gibi, tek fark git yerine https protokolünü kullanmaktır, bunun için SSH anahtarlarının yapılandırılması gerekir .


Git'in hangi sürümünü kullanıyorsunuz? Bu benim için işe yaramadı. Hala ayarlamama izin vermiyor çünkü dir boş değil
— guribe94

@ guribe94 git sürüm 2.5.0
— Tomáš Zemanovič

3
Bu aynı cevap, sadece ssh üzerinden git-protokolü yerine anonim https kullanarak (ssh anahtar çifti ayarlı bir github hesabı gerektirir).
— Peter Cordes

15

Hedef dizini git clonekomutun ikinci parametresi olarak belirtebilirsiniz , böylece şunları yapabilirsiniz:

git clone <remote> .

Bu, depoyu doğrudan geçerli yerel dizinde klonlar.


2

git repo'yu geçerli ve boş klasöre kopyalamak için (no git init) ve ssh kullanmıyorsanız:

git clone https://github.com/accountName/repoName.git .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.