git 能否 rebase 不连续的提交?

比如我依次有如下3个提交:

pick 02c6acf 结账脚本优化
pick fa980a1 方法属性变更,方便使用非静态成员变量
pick b124585 结账脚本优化

现在我想把第一个和第三个rebase,第二个不受影响,请问这个该怎么改呢?谢谢各位大神的回答。

看到好多大神说不明白我要干什么,再说明一下:

就是我希望把上面的三个提交处理成为:

pick fa980a1 方法属性变更,方便使用非静态成员变量
pick b124585 结账脚本优化

或者

pick 02c6acf 结账脚本优化
pick fa980a1 方法属性变更,方便使用非静态成员变量

也就是我要rebase原来的1和3,同时2也要保留。

阅读 7.6k
3 个回答

我猜想你是想把 结账脚本优化 相关的这两条提交合并为一个吧?

看你贴出的示例应该是已经进入 rebase 的界面了,所以你现在只需要先调整一下顺序:

pick fa980a1 方法属性变更,方便使用非静态成员变量
pick 02c6acf 结账脚本优化
pick b124585 结账脚本优化

然后把下面的一条的 pick 改成 squash

pick fa980a1 方法属性变更,方便使用非静态成员变量
pick 02c6acf 结账脚本优化
squash b124585 结账脚本优化

然后保存退出,接着就是普通的 rebase 旅程了。

我猜你是想拿其中几个提交的记录到指定的分支上面?

git cherry-pick [commit hash]
它可以将某一个或者几个提交(commit)的更改,拉取复制到当前分支

把第二个改成 s 就好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题