git rebase onto 高阶用法

背景: 本地分支合并了test分支,现在要上线,需要把本地分支合并到master分支,但是本地分支多出来了test分支的commit,怎么能把test分支的commit剔除。

如果你想在合并到 master 分支时剔除 test 分支的提交,你可以使用 "rebase" 命令来重构你的本地分支。

首先,你需要切换到本地分支:

git checkout 

然后,使用 "rebase" 命令来重构你的本地分支,让它基于 master 分支,并排除 test 分支的提交:

git rebase --onto master ^ test

这个命令会把你的本地分支的所有提交重新应用到 master 分支上,排除 test 分支的提交。这意味着你的本地分支在 master 分支的基础上新增了所有提交,但没有 test 分支的提交。

在这个过程中,Git 会让你重新编辑每个提交的信息,所以你还可以修改你的提交信息。

一旦你完成了重构,你就可以使用 "git push" 命令将你的本地分支推送到远程仓库,并在 master 分支上合并你的提交。

请注意,这种方法会修改你的提交历史,所以如果你的本地分支已经被其他人使用,你应该谨慎使用。

1、git rebase --onto 是什么

"git rebase" 命令是用来重构 Git 仓库中的提交历史的。它可以让你把一个分支的提交序列应用到另一个分支上,或者把一个分支的提交序列放到另一个分支的后面。

"git rebase" 命令可以接受很多参数,其中 "--onto" 参数是用来指定新的基础分支的。它的格式是:

git rebase --onto   

其中:

是新的基础分支。
是你要重构的分支在原来的基础分支的位置。
是你要重构的分支。
例如,如果你的仓库中有两个分支 A 和 B,你希望把 A 分支的提交序列应用到 B 分支上,你可以这样执行:

git rebase --onto B A

这个命令会把 A 分支的所有提交重新应用到 B 分支上,把 B 分支看做新的基础分支。这意味着 A 分支的提交会在 B 分支的后面新增,而不是在 B 分支的前面合并。

示例:git rebase --onto master feat/feat/mr-ggq-20221214-tp-pltj^ test 这个是什么意思

这个命令的意思是:使用 "git rebase" 命令重构本地分支 "feat/feat/mr-ggq-20221214-tp-pltj",把它基于 "master" 分支,并排除 "test" 分支的提交。

具体来说,"git rebase" 命令会把 "feat/feat/mr-ggq-20221214-tp-pltj" 分支的所有提交重新应用到 "master" 分支上,排除 "test" 分支的提交。这意味着 "feat/feat/mr-ggq-20221214-tp-pltj" 分支在 "master" 分支的基础上新增了所有提交,但没有 "test" 分支的提交。

你可以理解为,"git rebase --onto master feat/feat/mr-ggq-20221214-tp-pltj^ test" 命令把 "feat/feat/mr-ggq-20221214-tp-pltj" 分支的提交序列应用到 "master" 分支上,排除 "test" 分支的提交。

请注意,"feat/feat/mr-ggq-20221214-tp-pltj^" 表示 "feat/feat/mr-ggq-20221214-tp-pltj" 分支的上一个提交。在这个命令中,它用来表示 "feat/feat/mr-ggq-20221214-tp-pltj" 分支在原来的基础分支(即 "master" 分支)的位置。

你可能感兴趣的:(git rebase onto 高阶用法)