ฉันยังใหม่กับ Mercurial ไม่พบคำสั่งที่ถูกต้อง พยายามอัปเดต / ชำระเงินโดยไม่มีโชค ฉันใช้ที่เก็บในเครื่อง ขอบคุณ
ฉันยังใหม่กับ Mercurial ไม่พบคำสั่งที่ถูกต้อง พยายามอัปเดต / ชำระเงินโดยไม่มีโชค ฉันใช้ที่เก็บในเครื่อง ขอบคุณ
คำตอบ:
ฉันคิดว่าคุณต้องการhg revert -r<rev> <file>
(สิ่งนี้จะเปลี่ยนไฟล์นั้นให้เป็นเหมือนเดิมในการแก้ไขที่กำหนด)
ดังที่ djc กล่าวว่าrevert
จะแก้ไขไฟล์เพื่อให้ตรงกับการแก้ไขก่อนหน้านี้ หากคุณไม่ต้องการให้อยู่ในตำแหน่งคุณสามารถใช้hg cat -r revisionid filename
(แทนรหัสการแก้ไขและชื่อไฟล์แน่นอน) ซึ่งจะส่งออกไฟล์เป็น stdout เหมาะสำหรับการเปลี่ยนเส้นทางไปยังที่ใดก็ได้ที่คุณต้องการ
hg revert
แก้ปัญหานี้ได้แน่นอน แต่ฉันคิดว่าคุณสับสนเกี่ยวกับสิ่งต่างๆที่กว้างกว่าแค่คำตอบสำหรับคำถามของคุณและต้องการที่จะพยายามตอบอย่างเต็มที่
hg update
เป็นคำสั่งที่เก็บทั้งหมดและจะไม่ทำงานกับไฟล์แต่ละไฟล์ มันไม่เหมือนกับการโค่นล้มsvn update
ด้วยวิธีนี้ หากคุณhg --help update
เห็นว่าเป็นกรณีนี้เนื่องจากคำสั่งไม่มีอาร์กิวเมนต์ไฟล์ สามารถใช้เพื่อย้ายที่เก็บทั้งหมดของคุณไปยังสแน็ปช็อตเฉพาะ แต่ไม่สามารถใช้เพื่อทำเช่นนั้นกับไฟล์เดียวได้
หากคุณพิมพ์hg --help
คุณจะเห็นรายการคำสั่ง เป็นรายการที่ค่อนข้างใหญ่และค่อนข้างน่ากลัว แต่ถ้าคุณอ่านจบคุณจะพบบรรทัดนี้:
revert restore individual files or directories to an earlier state
hg cat
ตอนนี้ถ้าคุณต้องการเพียงแค่รัฐที่ผ่านมาเพื่อการเปรียบเทียบมีคำสั่งอื่นที่คุณอาจจะสนใจและว่า ซึ่งจะช่วยให้คุณสามารถพิมพ์เนื้อหาของไฟล์เมื่อมีการแก้ไขใด ๆ จากนั้นคุณสามารถเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์อื่นได้ จากนั้นคุณสามารถมีไฟล์เวอร์ชันก่อนหน้าและเวอร์ชันเก่าที่เป็นที่รู้จักเพื่อเปรียบเทียบเคียงข้างกัน
เหตุผลที่ Mercurial มีupdate
คำสั่งแยกกันคือสามารถทำบางสิ่งใน Mercurial ที่เป็นไปไม่ได้ในการโค่นล้ม คุณสามารถupdate
เป็นเวอร์ชันก่อนหน้าทำการเปลี่ยนแปลงแล้วคอมมิต สิ่งนี้จะสร้างสาขา update
คำสั่งมีผลยังมีการเปลี่ยนแปลงการแก้ไขแม่ของไดเรกทอรีที่ทำงานปัจจุบันเช่นเดียวกับการเปลี่ยนแปลงเนื้อหาของไฟล์ทั้งหมดในไดเรกทอรีที่รุ่นที่พ่อแม่การแก้ไขของ
นั่นหมายถึงrevert
การเปลี่ยนแปลงเนื้อหาของไฟล์ (หรือแม้กระทั่งที่เก็บทั้งหมดหากคุณให้อาร์กิวเมนต์ที่ถูกต้องแก่คำสั่ง) แต่ปล่อยให้การแก้ไขพาเรนต์ของสำเนาการทำงานปัจจุบันเหมือนเดิม
คุณสามารถค้นหาการแก้ไขหลัก (หรือการแก้ไขในกรณีของการผสาน) ของสำเนาการทำงานปัจจุบันโดยใช้hg parents
คำสั่ง
ในการแก้ไขการโค่นล้มเป็นความก้าวหน้าเชิงเส้นอย่างเคร่งครัด Mercurial สร้างกิ่งก้านที่ปลายหมวกและเกือบจะง่ายต่อการผสาน การแก้ไขในรูปแบบ DAG ไม่ใช่ความก้าวหน้าเชิงเส้นอย่างเคร่งครัด
ในการแยกการแก้ไขเฉพาะของไฟล์เฉพาะคุณสามารถทำได้บน Windows:
hg cat "<FileToBeExtractedPath>" -r 9 > "<ExtractionPath>"
นี่ 9 คือหมายเลขการแก้ไข
หรือดีกว่า:
hg cat "<FileToBeExtractedPath>" -r 9 -o "<ExtractionPath>"
มาที่นี่เพื่อพยายามรับเวอร์ชันก่อนหน้าดังนั้นนี่คือคำสั่งที่แน่นอน:
hg revert -r .~1 <file>