Git之使用命令行合并多次提交

如果有多次提交,可以用Git命令行合并,

1.先查看當前的提交和commit ID

git log 
image.png

如果要退出 直接輸入q

2. 復制要合并前一個的commitID

記住 這里是前一個 比如 上面的前一個為 避免污染友盟 commitID 為 fca027a42964d78988ec25f06d654114fe76224e

3. rebase當前的提交

git rebase -i commitID

比如 這里輸入的是 git rebase -i fca027a42964d78988ec25f06d654114fe76224e 立即進入Vim編輯器界面

4. 然后會進入Vim編輯器,此處應該有vim編輯器速通教程

Vim分為兩種模式,
命令模式:輸入一些控制指令 如撤銷.退出.保存.等等
編輯模式:可以編輯文本;
默認進入為命令模式,鍵入i,o,s,a等即可進入編輯模式,按esc可退出編輯模式

刪除

  • x 刪除當前字符
  • dd 刪除當前行 d(elete)
  • dw 刪除當前光標下的詞 d(elete)w(ord)

修改

  • i 在光標當前位置向前插入 i(nsert)
  • I在本行第一個字符前插入
  • a 在光標當前位置向后插入 a(fter)
  • A 在本行末尾插入
  • o 向下插入一行
  • O 向上插入一行
  • :w 保存
    -:q 退出
  • :wq 保存并退出
  • u 撤銷上一次修改
  • ctrl + r重做

5. 修改commit

image.png

可以見到
上方未注釋的部分是填寫要執(zhí)行的指令,
而下方注釋的部分則是指令的提示說明。
指令部分中由前方的命令名稱、commit hashcommit message 組成。

當前我們只要知道 picksquash 這兩個命令即可。
pick 的意思是要會執(zhí)行這個 commit
squash 的意思是這個 commit 會被合并到前一個commit,注意是
一個
我們將 c4e858b5 這個 commit 前方的命令改成 squash 或 s,然后輸入:wq以保存并退出

6.最后刪除多余的commit記錄就好了

image.png

輸入dd可以刪除一行,輸入 i.o.s.a等切換到編輯模式(底部有個insert標志),修改文字,完成后esc輸入:wq保存即可
重新git log 一下 發(fā)現(xiàn)已經修改完畢了

注意事項:

如果這個過程中有操作錯誤,可以使用 git rebase --abort來撤銷修改,回到沒有開始操作合并之前的狀態(tài)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容