แล้วเกิดพบว่า ลืม commit file ไปหนึ่ง file
แต่อยากให้ commit นี้ไปรวมอยู่ใน commit ก่อนหน้านั้น
กรณีที่เป็น case พึ่ง commit ไปหยกๆ เราก็สามารถใช้ commit --amend เข้ามาช่วยได้
แต่ถ้าเป็นกรณีที่มี commit อื่นๆมาคั่นหล่ะ
From pphetra |
Note: ใช้ได้กับกรณีที่ยังไม่ push ขึ้น repository เท่านั้น
พระเอกของเรื่องนี้ก็คือ
git rebase --interaction
ขั้นตอนก็คือ
เนื่องจากเรามี code ที่ต้องการแก้ไข ค้างอยู่ ให้ทำการ stash เก็บไว้ก่อน
$ git stash
Saved working directory and index state WIP on (no branch): b1b2bd6 fix bug: บางครั้งก็กด zoom ผลลัพท์จากการ serach ได้ บางครั้งก็ไม่ได้
HEAD is now at b1b2bd6 fix bug: บางครั้งก็กด zoom ผลลัพท์จากการ serach ได้ บางครั้งก็ไม่ได้
จากนั้นก็สั่ง rebase โดยกำหนด commit id ตัวก่อนหน้าตัวที่เราจะแก้
$ git rebase -i d1b9dc72a4a8f57b1dcb43c704494d8fcb639fd2
pick 516712b ERP-1807 implement login panel.
pick 38d8bda fix bug: duplicate primary key constraint 's name.
pick d316ecd fix bug: บางครั้งก็กด zoom ผลลัพท์จากการ serach ได้ บางครั้งก็ไม่ได้
# Rebase d1b9dc7..d316ecd onto d1b9dc7
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
เลือกเปลี่ยน commit ที่เป็นเป้าหมายในการ amend ให้เป็น 'edit'
จากนั้นก็สั่ง
git stash pop
แล้วก็เลือก commit --amend เข้าไป
สุดท้ายก็สั่ง
git rebase --continue
3 comments:
โอ้ หล่อมาก
ขอบคุณค่ะ พอจะเข้าใจแหละ
ขอบคุณสำหรับบทความดีๆครับ
krumkroo knowledge
Post a Comment