Magit - เลิกทำการกระทำล่าสุด - การจัดการประวัติ


12

คำถาม StackOverflowนี้มีทางออก / แนวทางที่ดีที่สุดในการเลิกทำพันธะสุดท้าย

ฉันเริ่มใช้ Magit เมื่อสองสามสัปดาห์ก่อนและหลังจากดูเอกสารทั้งหมดแล้วฉันก็ยังไม่มีวิธีที่ชัดเจนที่สุดในการยกเลิกการเปลี่ยนแปลงที่ตั้งใจกระทำ

ตัวอย่างเช่น:
สำหรับการเลิกทำและทำซ้ำการกระทำครั้งสุดท้ายที่เราสามารถใช้:

$ git commit -m "Something terribly misguided"
$ git reset HEAD~
<< edit files as necessary >>
$ git add ... 
$ git commit -c ORIG_HEAD # To keep the same commit message

สิ่งที่ควรเป็นขั้นตอนการทำงานที่ดีที่สุดในการทำซ้ำขั้นตอนนี้ใช้Magit ?

คำตอบ:


17

คุณสามารถใช้magit-reset(ผูกพันตามค่าเริ่มต้นเป็นx) การคอมมิต ณ จุดนั้นจะถูกใช้เป็นค่าเริ่มต้นสำหรับพรอมต์ แต่คุณสามารถป้อนค่าการแก้ไขใด ๆ ที่คุณต้องการ ("HEAD ~" ที่นี่)

คำสั่งการตั้งค่าใหม่อธิบายไว้ในส่วน "การรีเซ็ต" ของคู่มือ: https://magit.vc/manual/magit/Resetting.html

ในการใช้ข้อความยืนยันซ้ำคุณสามารถใช้=Cตัวเลือกในการยืนยันป๊อปอัป โดยไม่คาดคิดพรอมต์ไม่ได้เสนอค่าความสมบูรณ์ใด ๆ (ฉันคิดว่าอย่างน้อยน่าจะมีข้อเสนอ ORIG_HEAD) แต่ก่อนที่จะรีเซ็ตคุณสามารถใส่แฮชของการกระทำปัจจุบันในวงแหวนฆ่า (เช่นด้วยC-wบรรทัด "Head:" ของบัฟเฟอร์สถานะ) จากนั้นหลังจากรีเซ็ตให้งัดมันเป็นค่าสำหรับ=Cตัวเลือก


ความคิดเห็นเพิ่มเติมบางส่วน:

  • แทนที่จะใช้=Cคุณอาจพบว่ามีความมั่นใจมากขึ้นในการเริ่มต้นใช้งาน commit ( cc) จากนั้นใช้git-commit-prev-message ( M-p) เพื่อวนดูข้อความก่อนหน้า

  • หากคุณเพียงแค่ปรับเปลี่ยนการคอมมิทครั้งล่าสุดคุณสามารถแก้ไขการเปลี่ยนแปลงแบบสเตจกับคอมมิชชันก่อนหน้าด้วยmagit-commit-amend ( ca) หรือmagit-commit-extend( ce) (อันหลังนำข้อความการส่งกลับมาใช้ใหม่ผ่านการข้าม COMMIT_EDITMSG บัฟเฟอร์)

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