首页 > 解决方案 > 使用 rebase 拉到特定的提交

问题描述

这是一个带有变基扭曲的旧问题的变体。

我想做一个git pull --rebase但只做一个特定的提交。这不是拉特定的提交,而是拉到特定的提交。远程主机如下所示。

A<-B<-C<-D<-E<-F<-HEAD (Remote master HEAD)

假设我的本地特征分支 HEAD 指向 G 指向 D:

A<-B<-C<-D<-G<-HEAD (Current local feature branch HEAD).

我想用 rebase 拉到 E 以便我的分支最终看起来像:

A<-B<-C<-D<-E<-G<-HEAD (local feature branch end goal).

然而,这只是一个特例。我想选择任何符合条件的提交哈希,而不仅仅是上面示例中的倒数第二个。

自然,我希望提交 E 的哈希在操作结束时与远程主机匹配。我强调这一点,因为某些类型的交互式变基编辑会导致该属性消失。

我该怎么办?

标签: gitrebase

解决方案


从远程获取更改:

git fetch origin

重新定位到 master 的远程版本,忽略一些提交:

git rebase origin/master~<n>

哪里<n>master您要忽略的提示的提交次数。

如果你有你想要变基的提交的 id,你可以使用它来代替:

git rebase <commit-id>

推荐阅读