ใช้ git เพื่อรับการแก้ไขล่าสุด


380

ฉันต้องการติดตามโครงการที่ใช้คอมไพล์ ฉันไม่ต้องการโคลนที่เก็บข้อมูลแบบเต็มและประวัติแบบเต็มฉันแค่ต้องการการแก้ไขล่าสุดและฉันต้องการที่จะสามารถอัปเดตการแก้ไขใหม่จากโครงการระยะไกล

ฉันได้ลองใช้ git clone แล้ว แต่นี่เป็นการสร้างสำเนาของพื้นที่เก็บข้อมูลทั้งหมด (ขนาดไฟล์ใหญ่) และการติดตามการเปลี่ยนแปลงทำให้พื้นที่ดิสก์มีขนาดใหญ่กว่าเดิม

ฉันจะไม่ส่งแพทช์และฉันไม่ต้องการประวัติ ฉันแค่ต้องการเวอร์ชั่นล่าสุดเหมือนในการโค่นล้ม

เป็นไปได้ในคอมไพล์?


2
Git 1.9 / 2.0 (ไตรมาสที่ 1 ปี 2014) จะมีประสิทธิภาพมากขึ้นด้วยการโคลนแบบตื้น: stackoverflow.com/a/21217267/6309และstackoverflow.com/a/21217326/6309
VonC

คำตอบ:


552

ใช้--depthตัวเลือกในgit clone:

สร้างโคลนแบบตื้นที่มีประวัติถูกตัดให้เหลือจำนวนที่ระบุ

ตัวอย่าง: git clone --depth=1 <remote_repo_url>


87
ตัวอย่าง:git clone --depth=1 <remote_repo_url>
iDev247

14
ตั้งแต่คอมมิชชัน 82fba2bใน git 1.9 ข้อ จำกัด เหล่านี้ไม่มีอยู่อีกต่อไป
niutech

1
ข้อ จำกัด อะไร?
โง่เขลา

4
@Triangles: ข้อ จำกัด (ปัจจุบันไม่มีอีกต่อไป): พื้นที่เก็บข้อมูลแบบตื้นมีข้อ จำกัด จำนวนมาก (คุณไม่สามารถโคลนหรือดึงข้อมูลจากมันหรือผลักดันจากหรือเข้าสู่มัน) แต่ก็ไม่เพียงพอหากคุณสนใจเพียงประวัติศาสตร์ขนาดใหญ่เท่านั้น โปรเจ็กต์ที่มีประวัติยาวนานและต้องการส่งการแก้ไขเป็นแพตช์
odinho - Velmont


79

ทางเลือกอื่นในการทำตื้นโคลน ( git clone --depth=1 <URL>) จะเป็นถ้าด้านไกลสนับสนุนมันใช้--remoteตัวเลือกของการเก็บถาวร Git :

$ git archive --format=tar --remote=<repository URL> HEAD | tar xf -

หรือหากที่เก็บข้อมูลรีโมตที่มีปัญหาสามารถเรียกดูได้โดยใช้เว็บอินเตอร์เฟสบางอย่างเช่น gitweb หรือ GitHub ดังนั้นมีโอกาสที่จะมีคุณสมบัติ 'snapshot' และคุณสามารถดาวน์โหลดเวอร์ชันล่าสุด (โดยไม่ต้องมีข้อมูลเวอร์ชัน) จากเว็บอินเตอร์เฟส


4
โซลูชันนี้จะไม่เป็นไปตามข้อกำหนดนี้: "ฉันต้องการให้สามารถอัปเดตการแก้ไขใหม่จากโครงการระยะไกล" เนื่องจากโดยทั่วไปจะดาวน์โหลดไฟล์เก็บถาวรมันจึงไม่สามารถย้ายไปข้างหน้าคอมมิชชันหนึ่งหรือสองรายการได้อย่างรวดเร็ว "Shallow clone" อนุญาตให้ทำได้ ถึงกระนั้นฉันคิดว่าวิธีการแก้ปัญหานี้มีกรณีการใช้งานดังนั้นมูลค่าการกล่าวขวัญ
VasiliNovikov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.