原本目的是修改提交的commit信息仓洼,順便把其他可能會用到的總結學習了。
git rebase -i
后接commit ID或者HEAD~n哺呜。commit ID表示從該提交往后算箕戳,不包括該提交;HEAD~n表示最近n次玻墅。
執(zhí)行rebase命令后壮虫,會彈出一個rebase todo文本,里面包含了選擇的提交記錄和幫助信息旨指。
正文信息為
command commitID commitMessage
谆构,其中command在下面有列出來,可以使用首字母簡寫呵晨,后面會挑幾個可能會用到的講下;commitID不動摸屠;message可以改,但不在這里改檩咱。
command
- pick
默認命令胯舷,選擇當前commit,不做更改 -
reword
只改commit信息炊汹,改后會依次打開對應commit的文本記錄用以修改逃顶。
如果是本地未提交,也可以在vscode左下角進行撤銷霸褒,看output是用的reset
- edit
可以插入文件修改妙蔗,完成后commit會插入一條記錄在當前commit記錄后疆瑰。
如果是想合并到當前commit,可以使用git commit --amend -m 'new message'
合并為一條新的提交信息寸五。 - squash
合并請求耿币,使用后一次的提交信息作為結果信息。
最新的提交不能用squash十性,會被識別為錯誤命令塑悼,保存退出后會提示用git rebase --edit-todo
來糾正。
糾正完成(以及上面的edit操作)完成后霞势,需要用git rebase --continue
完成rebase,git bash在路徑右邊括號里能比較清楚看到rebasing狀態(tài)草雕,vscode則是在git -- commits處查看固以。
vi
上述過程中打開的文本都是命令行中的,順便復習一下vi操作命令败晴。
默認進入指令模式
移動光標
一般方向鍵夠用
快捷且方便記憶的有
- Ctrl + u (up)向上翻半頁
- Ctrl + d (down)向下翻半頁
- Shift + h (head)當前屏頂行
- Shift + m (middle)當前屏中部
- Shift + l (last)當前屏末行
- Shift + g (寄栽渴?)文本末行
- 0 當前行首
- $ 當前行尾
只是用來處理git的話這些基本夠用了,還有一些操作內容的:
- yy 復制當前行
- nyy 復制當前起的n行
- q 粘貼
- dd 剪切當前行
- u 撤銷
- Ctrl + r 恢復撤銷
如果是行內修改就需要進入到編輯模式
- i:在光標前
- I:在當前行首
- a:光標后
- A:在當前行尾
- o:在當前行之下新開一行
- O:在當前行之上新開一行
一般i就行了慢味,剩下就是編輯內容墅冷。
編輯完成后退出編輯模式 ESC 進入指令行模式
- :q 表示退出
- :q! 表示強制退出
- :wq 表示保存并退出
- :w 表示保存不退出
- :x 同wq
- :e 文件名 打開并編輯指定名稱的文件
一般:wq退出即可。
參考
https://blog.csdn.net/the_power/article/details/104651772/
https://blog.csdn.net/D_huili/article/details/126663824