विदà¥?र: ये ६ लोग जीवनà¤à¤° दà¥?ःख और दरà¥?द हà¥
สารบัญ:
เมื่อทำงานกับ Git คุณอาจประสบกับสถานการณ์ที่คุณต้องแก้ไขข้อความยืนยัน มีสาเหตุหลายประการที่คุณต้องการเปลี่ยนแปลงเช่นแก้ไขการพิมพ์ผิดลบข้อมูลที่ละเอียดอ่อนหรือเพิ่มข้อมูลเพิ่มเติม
คู่มือนี้จะอธิบายวิธีการเปลี่ยนข้อความของคอมมิทล่าสุดหรือเก่ากว่าที่คอมมิท
เปลี่ยนการกระทำล่าสุด
คำสั่ง
git commit --amend
อนุญาตให้คุณเปลี่ยนข้อความคอมมิทล่าสุด
ไม่ผลักดัน
หากต้องการเปลี่ยนข้อความของการส่งข้อความล่าสุดที่ยังไม่ได้ส่งไปยังที่เก็บข้อมูลระยะไกลให้ส่งข้อมูลอีกครั้งโดยใช้
--amend
flag
-
นำทางไปยังไดเรกทอรีที่เก็บข้อมูลในเทอร์มินัลของคุณ
รันคำสั่งต่อไปนี้เพื่อแก้ไข (เปลี่ยน) ข้อความของการคอมมิทล่าสุด:
git commit --amend -m "New commit message."
สิ่งที่คำสั่งทำคือเขียนทับการคอมมิตล่าสุดด้วยคำสั่งใหม่
อ็อพชัน
-m
อนุญาตให้คุณเขียนข้อความใหม่บนบรรทัดรับคำสั่งโดยไม่เปิดเซสชันเอดิเตอร์
ก่อนที่จะเปลี่ยนข้อความการส่งคุณยังสามารถเพิ่มการเปลี่ยนแปลงอื่น ๆ ที่คุณลืมไปก่อนหน้านี้:
git add.
git commit --amend -m "New commit message."
มุ่งมั่นที่จะผลักดัน
คอมมิชชันที่แก้ไขแล้ว (เปลี่ยนแปลง) เป็นเอนทิตีใหม่ที่มี SHA-1 ที่แตกต่างกัน การกระทำก่อนหน้านี้จะไม่มีอยู่ในสาขาปัจจุบันอีกต่อไป
โดยทั่วไปคุณควรหลีกเลี่ยงการแก้ไขคำมั่นสัญญาที่ผลักไปแล้วเนื่องจากอาจทำให้เกิดปัญหากับคนที่ยึดงานของเขาในการกระทำนี้ เป็นความคิดที่ดีที่จะปรึกษานักพัฒนาเพื่อนของคุณก่อนที่จะเปลี่ยนการมอบหมาย
-
นำทางไปยังที่เก็บ
แก้ไขข้อความของข้อความที่ส่งล่าสุด:
git commit --amend -m "New commit message."
บังคับให้กดเพื่ออัปเดตประวัติของที่เก็บระยะไกล:
git push --force branch-name
การเปลี่ยนคำสั่งเก่าหรือหลายรายการ
คำสั่ง
rebase
เขียนประวัติการคอมมิทซ้ำและไม่แนะนำให้ทำการรีบูตคอมมิชชันที่ถูกพุชไปยังที่เก็บ Git ระยะไกลแล้ว
-
นำทางไปยังที่เก็บที่มีข้อความการส่งที่คุณต้องการเปลี่ยน
พิมพ์
git rebase -i HEAD~N
โดยที่N
คือจำนวนการคอมมิทเพื่อทำการ rebase ตัวอย่างเช่นหากคุณต้องการเปลี่ยนการมอบหมายครั้งที่ 4 และครั้งที่ 5 คุณจะต้องพิมพ์:git rebase -i HEAD~5
คำสั่งจะแสดงการคอมมิต
X
ล่าสุดในเท็กซ์เอดิเตอร์เริ่มต้นของคุณ:pick 43f8707f9 fix: update dependency json5 to ^2.1.1 pick cea1fb88a fix: update dependency verdaccio to ^4.3.3 pick aa540c364 fix: update dependency webpack-dev-server to ^3.8.2 pick c5e078656 chore: update dependency flow-bin to ^0.109.0 pick 11ce0ab34 fix: Fix spelling. # Rebase 7e59e8ead..11ce0ab34 onto 7e59e8ead (5 commands)
ย้ายไปที่บรรทัดของข้อความยืนยันที่คุณต้องการเปลี่ยนและแทนที่การ
pick
ด้วยreword
:reword 43f8707f9 fix: update dependency json5 to ^2.1.1 reword cea1fb88a fix: update dependency verdaccio to ^4.3.3 pick aa540c364 fix: update dependency webpack-dev-server to ^3.8.2 pick c5e078656 chore: update dependency flow-bin to ^0.109.0 pick 11ce0ab34 fix: Fix spelling. # Rebase 7e59e8ead..11ce0ab34 onto 7e59e8ead (5 commands)
บันทึกการเปลี่ยนแปลงและปิดตัวแก้ไข
สำหรับแต่ละการกระทำที่เลือกหน้าต่างแก้ไขข้อความใหม่จะเปิดขึ้น เปลี่ยนข้อความคอมมิชชันบันทึกไฟล์และปิดตัวแก้ไข
fix: update dependency json5 to ^2.1.1
บังคับผลักดันการเปลี่ยนแปลงไปยังที่เก็บระยะไกล:
git push --force branch-name
ข้อสรุป
หากต้องการเปลี่ยนข้อความการส่งล่าสุดให้ใช้คำสั่ง
git commit --amend
และเพื่อเปลี่ยนข้อความการส่งข้อความที่เก่ากว่าหรือหลายรายการให้ใช้
git rebase -i HEAD~N
อย่าแก้ไขข้อผูกมัดเนื่องจากอาจทำให้เกิดปัญหามากมายกับเพื่อนร่วมงานของคุณ