คัดลอกเนื้อหาของที่เก็บ GitHub (ไม่มีโฟลเดอร์)


232

ฉันต้องการgit cloneเนื้อหาของพื้นที่เก็บข้อมูลที่ผมมีอยู่บนGitHub เมื่อฉันgit clone(git @ github: ฉัน / name.git ... ) ฉันได้รับชื่อโฟลเดอร์name/และชื่อภายในฉันมีเนื้อหาของฉัน ... ฉันจะได้รับเพียงแค่เนื้อหาได้อย่างไร



จริงข้ามดาวน์โหลดวัตถุที่ไม่จำเป็นเพื่อประหยัดทรัพยากรเครือข่าย: stackoverflow.com/questions/600079/...
Ciro Santilli郝海东冠状病六四事件法轮功

คำตอบ:


313

หากไดเรกทอรีปัจจุบันว่างเปล่าคุณสามารถทำได้ด้วย:

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

(สังเกต.ที่ท้ายเพื่อระบุไดเรกทอรีปัจจุบัน) แน่นอนว่าสิ่งนี้จะสร้าง.gitไดเรกทอรีในโฟลเดอร์ปัจจุบันของคุณด้วยไม่ใช่แค่ซอร์สโค้ดจากโครงการของคุณ

[directory]พารามิเตอร์ทางเลือกนี้จัดทำเป็นเอกสารไว้ในgit cloneหน้าคู่มือซึ่งชี้ให้เห็นว่าการโคลนลงในไดเรกทอรีที่มีอยู่จะได้รับอนุญาตเฉพาะเมื่อไดเรกทอรีนั้นว่างเปล่า


2
น่าเสียดายที่นี่ใช้งานไม่ได้หากมีไดเรกทอรีอื่น ๆ ที่ไม่เกี่ยวข้องอยู่ในไดเรกทอรีเดียวกัน กำลังมองหาทางออก ข้อความแสดงข้อผิดพลาดคือ: "ร้ายแรง: เส้นทางปลายทาง". ' มีอยู่แล้ว ... "
John Little

12
โคลนคอมไพล์คอมไพล์ต้องว่างเปล่า
jolyonruss

1
@HumaunRashid เพิ่ม.ตามที่กล่าวไว้ในคำตอบ: git clone https://github.com/humaun21/Test .. และใช่git@github.me/name.gitเป็นตัวแทนสำหรับสิ่งที่อยู่ repo git ที่แท้จริงของคุณคืออะไร
Aaron Campbell

1
@JohnLittle มีปัญหาเดียวกันปรากฎว่ามีไฟล์. DS_Store ที่ซ่อนอยู่ซึ่งซ่อนอยู่ที่นั่น เรียบง่ายrm .DS_Storeและคุณก็พร้อมที่จะไป
Selrond

1
หากคุณกำลังทำงานกับ linux OS คุณต้องแน่ใจว่าไดเรกทอรีนั้นว่างเปล่ารวมถึงการตรวจสอบไฟล์และไดเรกทอรีย่อยที่ซ่อนอยู่ คุณสามารถทำได้ด้วย ls -a คุณควรมีเพียง และ .. เป็นผลลัพธ์ สิ่งนี้จะไม่ทำงานอย่างอื่น
Ayo Makanjuola

156

น่าเสียดายที่นี่ใช้งานไม่ได้หากมีไดเรกทอรีอื่น ๆ ที่ไม่เกี่ยวข้องในไดเรกทอรีเดียวกันอยู่แล้ว กำลังมองหาวิธีแก้ปัญหา ข้อความแสดงข้อผิดพลาดคือ: "ร้ายแรง: เส้นทางปลายทาง". ' มีอยู่แล้ว...".

ทางออกในกรณีนี้คือ:

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

สูตรนี้ใช้ได้แม้ว่าจะมีไดเรกทอรีอื่นอยู่ในไดเรกทอรีที่คุณต้องการชำระเงิน


เฮ้ในนี้ฉันได้รับข้อผิดพลาดเช่นการอนุญาตถูกปฏิเสธ <กุญแจสาธารณะ> ปลายทางระยะไกลวางสายโดยไม่คาดคิด
สแตน

ไม่ควรจะอยู่github.comตรงนั้นหลังจากgit remote ...นั้นไม่ใช่githubหรือ?
พฤศจิกายน

5
คำตอบนี้ควรได้รับการยอมรับแล้ว ทำงานได้อย่างสมบูรณ์
vikramvi

ฉันอ่านที่อื่นที่นี่ที่คุณต้องวิ่งgit fetch --allก่อนgit pull origin masterเพราะถ้ามีสาขาอื่น ๆ ใน repo git pullจะไม่ได้รับยกเว้นคุณใช้fetchก่อน ถูกต้องหรือไม่
Alex G

38

หากโฟลเดอร์ไม่ว่างเปล่าคำตอบของ @ JohnLittle ที่แก้ไขเล็กน้อยนั้นใช้ได้กับฉัน:

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

ในฐานะที่เป็น @ Peter-Cordes ชี้ให้เห็นความแตกต่างเพียงอย่างเดียวคือการใช้โปรโตคอล HTTPS แทนการคอมไพล์ที่คุณจำเป็นต้องมีคีย์ SSH การกำหนดค่า


คุณใช้ระบบคอมไพล์รุ่นใด สิ่งนี้ไม่ได้ผลสำหรับฉัน มันยังคงไม่ให้ฉันตั้งค่าเพราะ dir ไม่ว่างเปล่า
guribe94

@ guribe94 git เวอร์ชั่น 2.5.0
TomášZemanovič

3
นี่คือคำตอบเดียวกันโดยใช้ https ที่ไม่ระบุชื่อแทน git-protocol บน ssh (ต้องการบัญชี github ที่มีการตั้งค่า keypair ssh)
Peter Cordes

15

คุณสามารถระบุไดเรกทอรีปลายทางเป็นพารามิเตอร์ตัวที่สองของgit cloneคำสั่งดังนั้นคุณสามารถทำได้:

git clone <remote> .

นี่จะโคลนที่เก็บโดยตรงในโลคัลไดเร็กทอรีปัจจุบัน


2

เพื่อโคลน git repo ลงในโฟลเดอร์ปัจจุบันและว่างเปล่า (ไม่ใช่git init) และหากคุณไม่ใช้ ssh:

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.