การล้างไฟล์ทั้งหมดไม่ได้เป็นการกำจัดประวัติ คุณต้องสร้างสาขาที่ไม่มีประวัติก่อนและเพิ่มไฟล์กำหนดค่าของคุณ วันนี้git checkoutมี--orphanตัวเลือกที่ทำให้สาขาที่ไม่มีประวัติ นี่คือข้อมูลเกี่ยวกับ--orphanตัวเลือก:
--orphan <new_branch>
สร้างสาขา orphan ใหม่ชื่อ <new_branch> เริ่มจาก <start_point> และเปลี่ยนไปใช้ การกระทำครั้งแรกที่เกิดขึ้นในสาขาใหม่นี้จะไม่มีผู้ปกครองและจะเป็นรากฐานของประวัติศาสตร์ใหม่ที่ตัดการเชื่อมต่อจากสาขาอื่น ๆ ทั้งหมดและกระทำ
ดัชนีและโครงสร้างการทำงานจะถูกปรับให้เหมือนกับว่าคุณเคยเรียกใช้ "git checkout <start_point>" มาก่อน สิ่งนี้ช่วยให้คุณสามารถเริ่มต้นประวัติใหม่ที่บันทึกชุดของเส้นทางที่คล้ายกับ <start_point> โดยเรียกใช้ "git คอมมิต -a" เพื่อให้ root คอมมิต
สิ่งนี้จะมีประโยชน์เมื่อคุณต้องการเผยแพร่ต้นไม้จากการคอมมิตโดยไม่ต้องเปิดเผยประวัติทั้งหมด คุณอาจต้องการทำเช่นนี้เพื่อเผยแพร่สาขาโอเพนซอร์สของโครงการที่มีโครงสร้างปัจจุบัน "สะอาด" แต่ประวัติเต็มมีบิตโค้ดที่เป็นกรรมสิทธิ์หรือมีภาระผูกพัน
หากคุณต้องการเริ่มต้นประวัติที่ไม่ได้เชื่อมต่อซึ่งบันทึกชุดของเส้นทางที่แตกต่างจาก <start_point> โดยสิ้นเชิงคุณควรล้างดัชนีและแผนผังการทำงานทันทีหลังจากสร้างสาขา orphan โดยเรียกใช้ "git rm -rf " จากระดับบนสุดของแผนผังการทำงาน หลังจากนั้นคุณจะพร้อมที่จะเตรียมไฟล์ใหม่ของคุณเปลี่ยนผังการทำงานใหม่โดยการคัดลอกจากที่อื่นแยก tarball ฯลฯ
นี่คือการเชื่อมโยงไปยังเอกสารสำหรับการเช็คเอาท์ คุณยังสามารถวิ่งได้git help checkoutอีกด้วย
เมื่อคุณสร้างสาขาโดยไม่มีประวัติแล้วเมื่อคุณส่งไปที่เซิร์ฟเวอร์ก็จะไม่มีประวัตินั้นเช่นกัน FWIW ช่วยให้ฉันคิดว่าgit push"ทำให้สาขาระยะไกลดูเหมือนสาขาในพื้นที่ของฉัน" ดังนั้นหากคุณมีประวัติและผลักดันก็จะมีประวัติ ถ้าคุณทำไม่ได้สาขาที่ผลักดันจะไม่