Git Revert vs Git Reset: เลิกทำและปรับการเปลี่ยนแปลงในประวัติ Git

Git Revert และ Git Reset เป็นสองคำสั่งสำคัญใน Git สำหรับการเลิกทำและปรับการเปลี่ยนแปลงใน commit ประวัติของที่เก็บ นี่คือคำแนะนำเกี่ยวกับวิธีใช้ Git Revert และ Git Reset:

 

Git Revert

  • Git Revert ให้คุณสร้างคอมมิตใหม่เพื่อเลิกทำ( revert) การเปลี่ยนแปลงที่คอมมิตก่อนหน้านี้

  • หากต้องการ revert a commit ให้ใช้คำสั่งต่อไปนี้:

    git revert <commit_id>
    

    แทนที่ <commit_id> ด้วย ID ที่ commit คุณต้องการเปลี่ยนกลับ ใหม่ commit จะถูกสร้างขึ้น เลิกทำการเปลี่ยนแปลงในไฟล์ commit.

  • Revert ไม่เปลี่ยนแปลง commit ประวัติศาสตร์ แต่สร้างใหม่ commit เพื่อย้อนกลับการเปลี่ยนแปลง

 

Git Reset

  • Git Reset ให้คุณย้อนกลับไปยังสถานะก่อนหน้าโดยย้ายสาขา HEAD และสาขาปัจจุบันไปยังคอมมิชชันเฉพาะ

  • Git Reset มีสามโหมดที่แตกต่างกัน: --soft, --mixed(default), and --hard.

  • ไปยัง reset สาขา HEAD ปัจจุบันเป็น a commit ให้ใช้คำสั่งต่อไปนี้:

    git reset --mode <commit_id>
    

    แทนที่ <commit_id> ด้วย ID ที่ commit คุณต้องการรีเซ็ต

  • Git Reset โหมด:

    • -soft: ย้าย HEAD และสาขาปัจจุบันไปยังที่ระบุ commit โดยคงการเปลี่ยนแปลงของสาขาก่อนหน้าไว้ commit ในพื้นที่การจัดเตรียม ใช้คำสั่ง git reset --soft <commit_id>.
    • --mixed: นี่คือโหมดเริ่มต้น ย้ายสาขา HEAD และสาขาปัจจุบันไปยังคอมมิชชันที่ระบุและลบการเปลี่ยนแปลงของสาขาก่อนหน้าออก commit จากพื้นที่จัดเตรียม ใช้คำสั่ง git reset --mixed <commit_id>.
    • --hard: ย้าย HEAD และสาขาปัจจุบันไปยังที่ระบุ commit และละทิ้งการเปลี่ยนแปลงทั้งหมดก่อนหน้า commit นี้ โปรดใช้ความระมัดระวังเนื่องจากการเปลี่ยนแปลงที่ไม่ได้ผูกมัดจะสูญหายไป ใช้คำสั่ง git reset --hard <commit_id>.
    <commit_id>.
  • Git Reset เปลี่ยนแปลง commit ประวัติและอาจทำให้ข้อมูลสูญหายได้ ดังนั้นโปรดใช้ด้วยความระมัดระวัง

 

Git Revert และ Git Reset เป็นเครื่องมืออันทรงพลังสำหรับการเลิกทำและปรับประวัติการคอมมิตใน Git ใช้อย่างระมัดระวังเพื่อให้แน่ใจว่าโครงการมีความเสถียรและหลีกเลี่ยงการสูญเสียข้อมูล