rebase本身就是兩個字組成,「re+base」
實際在做的時候,我們大概可以說re就是重新的意思,base就是分支的參考基準。
更仔細的說「base」:你這個分支是從哪裏生出來的。
「重新定義分支的參考基準」就是rebase的實際意義,換句話說,就是「嫁接」,如果玩過水果(額....我是說種水果
應該就會知道嫁接就是把某個枝子接在不同的枝子上。
假如我現在人在cat這個分支上,我還有另外兩個支,一個是master主分支、一個是dog分支
git rebase dog
這個指令的意義基本上就是這樣:
「我是cat分支,我現在要重新定義我的參考基準為,使用dog來當我的參考基準」
總之,就像是....嫁接?
把cat分支長到一半的東西接到dog上面
誰rebase誰有差,就跟名義上PRO直接把ROC接過來一樣
先回去看紀錄
git log --oneline
翻一下Reflog
git reflog
這個時候我上面使用rebase的紀錄38f1386就被找到了
接著就可以從一些內容裡找到什麼時候rebase的,然後我們就針對那個rebase的commit紀錄,輸入指令:
git reset --hard
然後如果要讓它回來,就輸入上面的代碼,就會讓原本rebase的東西回到原樣了!
這次用不同的分支:
git rebase new_Francis
完成嫁接之後,在輸入下面的指令:
git reset ORIG_HEAD --hard
ORIG_HEAD這個東東很特別,它會紀錄一些危險操作,比如merge、rebase,因為通常做這些會讓紀錄的歷史改變,所以輸入它,就可以不用擔心回不去啦XD
這樣做完,該取消的紀錄就取消了!
鐵人賽