1. git log
查看當(dāng)前狀態(tài)
可以看到當(dāng)前狀態(tài)有四個提交。現(xiàn)在想用git revert回退這三次提交财忽,但是我們知道git revert是用一次新的提交回退之前的提交倘核,所以我回退三次,就會有三個新的提交即彪,但是我又想只增加一個新的提交紧唱,繼續(xù)看。
?
2. git revert
回退依次三個提交
可以看到執(zhí)行完三次回退后祖凫,又新增了三次提交琼蚯,現(xiàn)在想將這三次提交合并成一個。
?
3. git rebase
合并多次commit
我們想將最近的三個提交合并惠况,首先需要如下命令:
其中遭庶,-i 的參數(shù)是不需要合并的 commit 的 hash 值,這里即從當(dāng)前時間往前推的第四個提交稠屠, 接著我們就進(jìn)入到 vi 的編輯模式峦睡。
可以看到其中分為兩個部分,上方未注釋的部分是填寫要執(zhí)行的指令权埠,而下方注釋的部分則是指令的提示說明榨了。指令部分中由 前方的命令名稱、commit hash 和 commit message 組成攘蔽。
當(dāng)前我們只要知道兩個命令: pick 和 squash
pick 的意思是要會執(zhí)行這個 commit
squash 的意思是這個 commit 會被合并到前一個commit
我們將 9ee35f2 和 5eb5678 這兩個 commit 前方的命令改成 squash 或 s龙屉,然后輸入:wq以保存并退出
這時我們會看到 commit message 的編輯界面
其中, 非注釋部分就是三次的 commit message, 我們要做的就是將這三個修改成一個新的 commit message。
輸入wq保存并推出, 再次輸入git log查看 commit 歷史信息,你會發(fā)現(xiàn)這三個 commit 已經(jīng)合并了转捕。
————————————————
版權(quán)聲明:本文為CSDN博主「本然233」的原創(chuàng)文章作岖,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明五芝。
原文鏈接:https://blog.csdn.net/qq_35008279/article/details/86316819