git rebase
วิธีที่ง่ายที่สุดคือการใช้ สมมติว่าคุณมีการตั้งค่าดังกล่าว:
A -- B -- C -- C1 -- C2 # right branch
\
\-- D -- C3 -- C4 # wrong branch
คุณต้องการย้ายการเปลี่ยนแปลง C3, C4 ไปยังสาขาที่ถูกต้อง
git checkout -b new_wrong_branch D
git checkout wrong_branch
git rebase D --onto right_branch
git checkout right_branch
git merge right_branch wrong_branch
git branch -d wrong_branch
git branch rename new_wrong_branch wrong_branch
ตอนนี้การตั้งค่าคือ
A -- B -- C -- C1 -- C2 -- C3 -- C4 # right_branch
\
\ -- D # wrong_branch
จากนั้นคุณต้องผลักดันผลลัพธ์ของคุณด้วยแรง (หากยังไม่มีใครซิงโครไนซ์กับ repo ระยะไกลของคุณ):
git push -f remote:right_branch