美文网首页
git rebase -i修改本地提交

git rebase -i修改本地提交

作者: 绝尘kinoko | 来源:发表于2022-12-01 16:21 被阅读0次

    原本目的是修改提交的commit信息,顺便把其他可能会用到的总结学习了。
    git rebase -i后接commit ID或者HEAD~n。commit ID表示从该提交往后算,不包括该提交;HEAD~n表示最近n次。
    执行rebase命令后,会弹出一个rebase todo文本,里面包含了选择的提交记录和帮助信息。

    rebase todo
    正文信息为command commitID commitMessage,其中command在下面有列出来,可以使用首字母简写,后面会挑几个可能会用到的讲下;commitID不动;message可以改,但不在这里改。

    command

    • pick
      默认命令,选择当前commit,不做更改
    • reword
      只改commit信息,改后会依次打开对应commit的文本记录用以修改。
      如果是本地未提交,也可以在vscode左下角进行撤销,看output是用的reset


      undo commit
    • edit
      可以插入文件修改,完成后commit会插入一条记录在当前commit记录后。
      如果是想合并到当前commit,可以使用git commit --amend -m 'new message'合并为一条新的提交信息。
    • squash
      合并请求,使用后一次的提交信息作为结果信息。
      最新的提交不能用squash,会被识别为错误命令,保存退出后会提示用git rebase --edit-todo来纠正。
      纠正完成(以及上面的edit操作)完成后,需要用git rebase --continue完成rebase,git bash在路径右边括号里能比较清楚看到rebasing状态,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

    相关文章

      网友评论

          本文标题:git rebase -i修改本地提交

          本文链接:https://www.haomeiwen.com/subject/njwefdtx.html