Git每日总结(一)

944 阅读1分钟

git rebase -i 的用法

git rebase -i(交互式变基)是一个强大的 Git 命令,允许你以交互方式修改提交历史。以下是详细的使用指南:

基本用法

git rebase -i <commit-hash>  # 对某个提交之后的所有提交进行交互式变基
git rebase -i HEAD~3        # 对最近3个提交进行交互式变基
git rebase -i origin/main   # 对当前分支与origin/main分支分叉点之后的所有提交进行变基

交互式界面操作

执行命令后会打开编辑器(如Vim),显示类似如下的内容:

pick 1a2b3c4 Commit message 1
pick 5d6e7f8 Commit message 2
pick 9g0h1i2 Commit message 3

你可以修改每行前面的命令来改变提交的处理方式:

常用命令选项

命令缩写功能
pickp保留该提交(默认)
rewordr保留提交但修改提交信息
edite保留提交但暂停以修改内容
squashs将提交合并到前一个提交中
fixupf类似squash但丢弃提交信息
dropd删除该提交
execx执行shell命令

常见工作流示例

  1. 修改最近的提交信息

    reword 1a2b3c4 New commit message
    pick 5d6e7f8 Commit message 2
    
  2. 合并多个提交为一个

    pick 1a2b3c4 Commit message 1
    squash 5d6e7f8 Commit message 2
    squash 9g0h1i2 Commit message 3
    
  3. 重新排序提交
    只需调整行的顺序即可改变提交顺序