git rebase 与 git cherry-pick 详解
git rebase 与 git cherry-pick 详解
1. git reabse
在 git 命令中,git rebase命令可以令当前所在分支与指定分支合并,作为一个新提交。但之前的记录保留在原地。他有两种参数形式:
# 将当前记录及当前记录以上的记录(截止到公共父记录),合并到目的分支
$ git rebase <目的分支>
# 将一个记录及此纪录以上的记录,合并到目的分支
# 关键是参数的顺序
$ git rebase <目的分支> <待移动分支>
假设我们当前有如下场景:

执行git rebase main的结果如下:

执行git rebase main C4的结果如下:

另外值得一提的是 git rebase -i
git rebase -i命令可以打开一个交互式的窗口,他有下面两种参数形式:
# 将当前记录及当前记录以上的记录(截止到公共父记录),合并到目的分支
$ git rebase -i <目的分支>
# 将一个记录及此纪录以上的记录,合并到目的分支
# 关键是参数的顺序
$ git rebase -i <目的分支> <待移动分支>
假设我们当前有如下场景:

执行git rebase -i main的结果如下:

可以对本来要用移动的几个节点进行交互式处理。
执行git rebase -i main C4的结果如下:

可以对本来要用移动的几个节点进行交互式处理。
2. git cherry-pick
下面是此命令的格式,可以按指定的顺序择取数个提交,放置在当前节点下方。
$ git cherry-pick <有序参数列表>
假设我们当前有如下场景:

执行git cherry-pick C6 C2的结果如下:


git rebase 与 git cherry-pick 详解
浙公网安备 33010602011771号