คุณสามารถใช้git checkout -pซึ่งช่วยให้คุณเลือก hunks แต่ละตัวจากส่วนต่างระหว่างสำเนาการทำงานและดัชนีของคุณเพื่อย้อนกลับ ในทำนองเดียวกันgit add -pช่วยให้คุณเลือก hunks เพื่อเพิ่มไปยังดัชนีและgit reset -pช่วยให้คุณสามารถเลือก hunks แต่ละตัวจากความแตกต่างระหว่างดัชนีและ HEAD เพื่อกลับออกจากดัชนี
$ git checkout -p file/to/partially/revert
# or ...
$ git checkout -p .
หากคุณต้องการถ่ายภาพพื้นที่เก็บข้อมูล git ของคุณล่วงหน้าเพื่อเก็บการเปลี่ยนแปลงเหล่านี้ไว้ก่อนที่จะคืนค่าฉันต้องการ:
$ git stash; git stash apply
หากคุณใช้บ่อยคุณอาจต้องการนามแฝง:
[alias]
checkpoint = !git stash; git stash apply
ย้อนกลับ hunks บุคคลหรือสายอาจจะง่ายยิ่งขึ้นถ้าคุณใช้โหมดการแก้ไขที่ดีหรือปลั๊กอินซึ่งอาจให้การสนับสนุนสำหรับการเลือกสายโดยตรงเพื่อย้อนกลับไปเช่น-pอาจจะเป็นเงอะงะบิตเพื่อใช้ในบางครั้ง ฉันใช้Magitโหมด Emacs ที่มีประโยชน์มากสำหรับการทำงานกับ Git ใน Magit คุณสามารถเรียกใช้magit-statusค้นหาความแตกต่างสำหรับการเปลี่ยนแปลงที่คุณต้องการเปลี่ยนกลับเลือกบรรทัดที่คุณต้องการเปลี่ยนกลับ (หรือเพียงวางเคอร์เซอร์บน hunks ที่คุณต้องการเปลี่ยนกลับหากคุณต้องการเปลี่ยนก้อนใหญ่ในเวลาเดียวแทน บรรทัดต่อครั้ง) และกดkเพื่อเปลี่ยนกลับบรรทัดที่ระบุเหล่านั้น ฉันขอแนะนำ Magit ถ้าคุณใช้ Emacs