ฉันเพิ่งอัพเกรดเป็น magit 2.1.0 (และรวมถึง emacs 25.0.50 และ git 2.3.1)
ก่อนหน้านี้ใน*magit*
บัฟเฟอร์ฉันสามารถ:
- เลือกก้อนใหญ่ในพื้นที่ Unstaged
- พิมพ์vและตอบตกลงเพื่อย้อนกลับ
มันมีประโยชน์
แต่ตอนนี้ใน magit 2.1.0 "Cannot reverse unstaged changes"
มันจะช่วยให้ข้อผิดพลาด:
ทำไม?
ด้วยการบอกใบ้จากข้อความแสดงข้อผิดพลาดฉันค้นพบว่าฉันยังคงสามารถทำได้แม้ว่าจะอยู่ในลักษณะ "ย้อนหลัง" ด้วยขั้นตอนเพิ่มเติม:
- sเดือดดาล (รู้สึกย้อนกลับ; ย้ายไปใกล้กับสถานะที่กำหนด)
- นำทางลงและเลือกในพื้นที่จัดฉาก
- กดvตอบใช่
- อย่างไรก็ตามก้อนใหญ่ยังคงเป็นฉากดังนั้นในที่สุดฉันก็ต้องขึ้นuเวทีก้อนใหญ่
นี่เป็นข้อบกพร่องหรือเป็นความตั้งใจและ / หรือฉันหนาแน่น ถ้าอย่างหลังคุณช่วยฉันเข้าใจไหม
UPDATE: หลังจาก RTFinfo-ing อย่างละเอียดฉันเห็นว่ามีสองคำสั่ง:
- v
magit-reverse
กลับรายการการเปลี่ยนแปลง ณ จุดในแผนผังการทำงาน - k
magit-discard
ลบการเปลี่ยนแปลงที่จุดจากต้นไม้ทำงาน
ดูเหมือนว่าk magit-discard
จะทำสิ่งที่ฉันเคยvทำมาก่อน มันทำงานได้กับก้อนใหญ่ที่ไม่มีสเตจ
kดังนั้นในทางปฏิบัติผมเพียงแค่ต้องฝึกหน่วยความจำของกล้ามเนื้อของฉันกับการใช้งาน ฉันสามารถโพสต์นั้นเป็นคำตอบด้วยตนเอง แต่ฉันคิดว่าฉันยังสงสัยเกี่ยวกับเหตุผลเพราะฉันจินตนาการว่าความเข้าใจมันจะช่วยให้ฉันเข้าใจจอมเวทโดยรวมดีขึ้น
k
ยกเลิกการเปลี่ยนแปลงที่ไม่ได้ระบุไว้ใน magit รุ่นก่อนหน้าและดูเหมือนว่าคำสั่งที่เหมาะสมสำหรับสิ่งที่คุณกำลังทำ v
สำหรับการย้อนกลับคอมไพล์: การสร้างคอมมิทใหม่ที่ทำให้เกิดการเปลี่ยนแปลงที่ตรงกันข้ามกับอันก่อน ฉันเดาว่าการคืนค่าการเปลี่ยนแปลงที่ไม่ได้กระทำจริง ๆ นั้นเหมือนกับการยกเลิก แต่การ 'เปลี่ยนกลับ' มีความหมายเฉพาะเป็นคำสั่ง git
v
ถูกผูกไว้กับmagit-revert-item
(ที่ "ย้อนกลับ" คำศัพท์ที่มาจากที่นั่น @PythonNut) และสำหรับรายการ unstaged นี้ใช้ในการทำmagit-discard-item
(ในขณะที่ยังผูกพันที่จะk
) - เห็นเส้น 4872 ที่นี่ เห็นได้ชัดว่าฉันตั้งใจเรียนรู้ว่าความหมายพิเศษของที่ทำงานเมื่อฉันควรจะได้เรียนรู้การใช้งานv
k