เนื่องจากคุณได้ผลักดันตัวเลือกที่มีโอกาสน้อยที่สุดที่จะทำลายสิ่งต่าง ๆ ของคุณน่าจะเป็นgit revert
:
git checkout master
git revert commit1 commit2
git merge new-branch
git push
โปรดทราบว่าสิ่งนี้จะส่งผลให้ต้นแบบมีไฟล์เดียวกันกับสาขาใหม่อย่างแน่นอน แต่ commit1 และ commit2 จะยังคงอยู่ในประวัติของมาสเตอร์พร้อมกับสองคอมมิชชันเพิ่มเติมที่จะคืนค่าการเปลี่ยนแปลงของพวกเขา
ไม่แนะนำ
หากคุณต้องการลบการกระทำที่คุณได้ผลักออกจากปริญญาโทไปแล้วก่อนอื่นให้แจ้งเพื่อนร่วมทีมของคุณทุกคนว่าคุณกำลังจะทำลายสิ่งต่าง ๆ ให้ใช้git reset
:
git checkout master
git reset --hard commit3
git merge new-branch
git push -f
--hard
จะลบการเปลี่ยนแปลงทั้งหมดที่กระทำโดย commit1 และ commit2 จากระบบไฟล์ของคุณ คุณสามารถใช้--soft
เพื่อรักษาการเปลี่ยนแปลงเหล่านั้นไว้ในระบบไฟล์ในขณะที่ยังคงลบการกระทำเหล่านั้น
คุณอาจต้องการให้เพื่อนร่วมทีมชี้ไปที่เอกสารสำหรับการกู้คืนจากการรีสตรีมรีบูต (จุดรีคอมไพล์ไปที่ส่วนนั้นเมื่อพูดถึงการใช้คอมมิชชันreset --hard
ที่ส่งไปแล้ว)