git rebase 与 git cherry-pick 详解

git rebase 与 git cherry-pick 详解

1. git reabse

在 git 命令中,git rebase命令可以令当前所在分支与指定分支合并,作为一个新提交。但之前的记录保留在原地。他有两种参数形式:

# 将当前记录及当前记录以上的记录(截止到公共父记录),合并到目的分支
$ git rebase <目的分支>
# 将一个记录及此纪录以上的记录,合并到目的分支
# 关键是参数的顺序
$ git rebase <目的分支> <待移动分支>

假设我们当前有如下场景:
git rebase 与 git cherry-pick 详解_第1张图片
执行git rebase main的结果如下:
git rebase 与 git cherry-pick 详解_第2张图片
执行git rebase main C4的结果如下:
git rebase 与 git cherry-pick 详解_第3张图片
另外值得一提的是 git rebase -i

git rebase -i命令可以打开一个交互式的窗口,他有下面两种参数形式:

# 将当前记录及当前记录以上的记录(截止到公共父记录),合并到目的分支
$ git rebase -i <目的分支>
# 将一个记录及此纪录以上的记录,合并到目的分支
# 关键是参数的顺序
$ git rebase -i <目的分支> <待移动分支>

假设我们当前有如下场景:
git rebase 与 git cherry-pick 详解_第4张图片
执行git rebase -i main的结果如下:
git rebase 与 git cherry-pick 详解_第5张图片
可以对本来要用移动的几个节点进行交互式处理。
执行git rebase -i main C4的结果如下:
git rebase 与 git cherry-pick 详解_第6张图片
可以对本来要用移动的几个节点进行交互式处理。

2. git cherry-pick

下面是此命令的格式,可以按指定的顺序择取数个提交,放置在当前节点下方。

$ git cherry-pick <有序参数列表>

假设我们当前有如下场景:
git rebase 与 git cherry-pick 详解_第7张图片
执行git cherry-pick C6 C2的结果如下:
git rebase 与 git cherry-pick 详解_第8张图片

你可能感兴趣的:(git,github)