将基础重新拉至特定提交

时间:2020-02-01 16:29:02

标签: git rebase

这是older question的变体,带有变基扭曲。

我想做一个git pull --rebase,但要等到特定的提交为止。这不是拉特定的提交,而是将向上拉。远程主服务器如下所示。

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

假设我的局部特征分支HEAD指向G,而G则指向D:

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

我想通过重新设置提升到E,这样我的分支最终看起来像这样:

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

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

自然,我希望提交E的哈希值在操作结束时与远程主服务器匹配。我不愿意指出这一点,因为某些类型的交互式基准库编辑会导致该属性消失。

我该怎么办?

2 个答案:

答案 0 :(得分:3)

从远程获取更改:

git fetch origin

以master的远程版本为基础,忽略一些提交:

git rebase origin/master~<n>

其中<n>是您要忽略的从​​master尖端开始的提交次数。

如果您具有要作为基准的提交的ID,则可以改用它:

git rebase <commit-id>

答案 1 :(得分:-1)

尝试交互式变基:

git rebase -i e3f8704

e3f8704是您的提交哈希码。