Git: git pull - 从特定提交开始直到最新提交跳过 1 次提交?

Git: git pull - start from specific commit until the latest commits skipping 1 commit?

如何从分支中拉取以开始获取特定提交?

假设,我有这些分支: branch1oldbranch1

branch1oldbranch1

的回滚版本

假设,oldbranch1 有这些提交:

branch1 上:

现在我想从 oldbranch1 获取更新,跳过 oldbranch1commit_3,因为它包含错误的合并,删除了 commit_2 和 [=24] 的更改=]

我该怎么做?有什么神奇的命令吗?

跳过提交主要意味着 git rebase --interactive:

  • 你在 oldbranch1 之上创建了一个 tmp 分支 (git branch tmp oldbranch1)
  • rebase -i branch1 那个 tmp 分支,重播每个提交,除了 commit3 你可以删除
  • reset --hard branch1到新的tmp HEAD。

最后一步意味着:移动(强制)branch1 HEAD 到 tmp,但是由于 rebase 只添加了新的(重写的)提交到 branch1,你应该能够简单地做:

git checkout branch1
git merge tmp 

这应该将 tmp 快进合并到 branch1,只需将 branch1 HEAD 移动到 tmp 所在的位置。

那么一个简单的 git push(或者 git push -u origin branch1 如果 branch1 之前从未被推送过)就足够了。