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.