可以通過rebse命令列另,修改最近一次提交以前的某次提交瘦黑。不過修改的提交到當(dāng)前提交之間的所有提交的hash值都會改變。
首先查看提交日志端幼,以便變基后,確認(rèn)提交歷史的修改
git log
git rebase 可以用commit~n或commit^這種形式:前者表示當(dāng)前提交到n次以前的提交弧满,后者^符號越多表示的范圍越大婆跑,commit可以是HEAD或者某次提交的hash值;-i參數(shù)表示進(jìn)入交互模式庭呜。
git rebase -i <commit range>
以上rebase命令會進(jìn)入文本編輯器滑进,其中每一行就是某次提交,把pick修改為edit募谎,保存退出該文本編輯器扶关。
注意:rebase 命令打開的文本編輯器中的commit順序跟git log查看的順序是相反的,也就是最近的提交在下面数冬,老舊的提交在上面
注意:rebase 命令其實可以同時對多個提交進(jìn)行修改节槐,只需要修改將對應(yīng)行前的pick都修改為edit,保存退出后會根據(jù)你修改的數(shù)目多次打開修改某次commit的文本編輯器界面拐纱。但是這個范圍內(nèi)的最終祖先commit不能修改铜异,也就是如果有5行commit信息,你只能修改下面4行的戳玫,這不僅限于commit修改熙掺,重排未斑、刪除以及合并都如此咕宿。
接下來修改提交描述內(nèi)容或者文件內(nèi)容:
git add -u *
git commit --amend
然后完成變基操作
git rebase --continue