มีค่าสถานะที่จะส่งผ่านไปยังgit
เมื่อทำการโคลนหรือไม่อย่าโคลน.git
ไดเรกทอรี? ถ้าไม่วิธีการเกี่ยวกับการตั้งค่าสถานะการลบ.git
ไดเรกทอรีหลังจากโคลน
git archive
พื้นที่เก็บข้อมูลระยะไกลเป็นวิธีการแก้ปัญหา "ซ้ำกันได้"
มีค่าสถานะที่จะส่งผ่านไปยังgit
เมื่อทำการโคลนหรือไม่อย่าโคลน.git
ไดเรกทอรี? ถ้าไม่วิธีการเกี่ยวกับการตั้งค่าสถานะการลบ.git
ไดเรกทอรีหลังจากโคลน
git archive
พื้นที่เก็บข้อมูลระยะไกลเป็นวิธีการแก้ปัญหา "ซ้ำกันได้"
คำตอบ:
ใช้
git clone --depth=1 --branch=master git://someserver/somerepo dirformynewrepo
rm -rf ./dirformynewrepo/.git
dirformynewrepo
ไม่ใช่ที่เก็บ Git อีกต่อไป!$/.git
หมายถึง?
!$
ในขณะที่ถูกต้องทางเทคนิคในกรณีนี้ไม่ทำอะไรเลยที่จะช่วยให้ผู้ที่ไม่รู้จักไวยากรณ์เข้าใจคำตอบของคำถามจริง นอกจากนี้ยังขึ้นอยู่กับคำสั่งที่สองโดยตรงต่อจากคำสั่งแรกและภายในเชลล์เดียวกัน หากใครก็ตามไม่ปฏิบัติตามข้อกำหนดโดยปริยายพวกเขาอาจจะทำการลบอย่างอื่นโดยสิ้นเชิง ดังนั้นฉันขอแนะนำให้คำตอบของคุณสามารถปรับปรุงได้โดยการระบุชื่อdirformynewrepo
เป็นอาร์กิวเมนต์ของrm
คำสั่งอย่างชัดเจนเนื่องจากจะทำให้การเชื่อมต่อระหว่างคำสั่งทั้งสองชัดเจนขึ้น
เนื่องจากคุณต้องการไฟล์เท่านั้นคุณไม่จำเป็นต้องถือเป็น repo คอมไพล์
rsync -rlp --exclude '.git' user@host:path/to/git/repo/ .
และใช้งานได้กับโลคัลพา ธ และพา ธ ssh / rsync ระยะไกลเท่านั้นมันอาจไม่ทำงานหากเซิร์ฟเวอร์ระยะไกลให้การเข้าถึงแบบ git: // หรือ https: // เท่านั้น
อีกทางเลือกหนึ่งถ้าคุณติดตั้งNode.jsคุณสามารถใช้คำสั่งต่อไปนี้:
npx degit GIT_REPO
npx
มาพร้อมกับ Node และอนุญาตให้คุณเรียกใช้แพคเกจที่ใช้โหนดฐานสองโดยไม่ต้องติดตั้งชุดแรก (หรือคุณสามารถติดตั้งได้degit
ทั่วโลกโดยใช้npm i -g degit
)
Degitเป็นเครื่องมือที่สร้างโดย Rich Harris ผู้สร้าง Svelte และ Rollup ซึ่งเขาใช้ในการสร้างโครงการใหม่อย่างรวดเร็วโดยการโคลนที่เก็บโดยไม่ต้องเก็บโฟลเดอร์ git แต่มันสามารถใช้ในการโคลน repo ครั้งเดียว ...
คุณสามารถทำได้
git clone git://repo.org/fossproject.git && rm -rf fossproject/.git
.git
ไดเรกทอรี dupe ที่ถูกกล่าวหาจะถามวิธีส่งออกที่เก็บข้อมูลที่มีอยู่ซึ่งคุณมี.git
ไดเรกทอรีอยู่แล้ว