Git - Rebase

之前筆者一直以為 rebase 是進行類似 剪下貼上 的操作,但實際上是 複製貼上

情境

  • 合併時不會像 merge 時會有 commit 的節點
  • 想整理 還沒推出去 的 commit 可以使用
  • 避免修改已經推出去的歷史

如何取消操作

使用 reflog 列印出所有「歷史紀錄」找到 rebase 的前一個 commit id,並進行 reset 即可

git reflog
git reset XXXXXXX --hard

此外當進行比較危險操作時 git 會額外紀錄前一個 head 於 ORIG_HEAD,因此也可以直接執行以下,來達到同樣效果

git reset ORIG_HEAD --hard

Ref