GIT: 从远程分支中的第 2 到第 5 次提交中删除

GIT: remove from 2nd to 5th commits in the remote branch

我想完全删除远程分支中的几个提交。

原因:具有唯一重要(和最近)提交的分支应该分叉并合并到另一个分支.

一旦我将分支更改为正确的分支(通过浏览器),我就会看到更多的提交尚未在该正确的分支中。我不需要它们。

git reset --hard HEAD~5

并且通过手动应用和提交我最近的更改没有得到结果。现在有更多的提交。

那么,什么是正确而清晰的算法?

谢谢。

啊啊啊……没看懂你的意思。如果你想做的是 "remove" 对分支历史(本地或远程)的一些修改,你需要做的是:

  • 获取要删除的两个修订版的 (sha1) ID
  • 检查修订版[​​=20=]之前 最年长的夫妇
  • 从最旧的修订到最新的修订之前的一个修订(这将丢弃最旧的,因此不会应用)
  • 从最新到原始分支的尖端的 Cherry-pick 修订。

所以...假设远程分支是 foo/bar,修订版是 rev1(最旧)和 rev2(最新)。

你所做的是:

git checkout rev1~1
git cherry-pick rev1..rev2~1
git cherry-pick rev2..foo/bar

当你到达这一点时,你可以在它上面创建一个本地分支,或者如果你想替换它,只需将它推入 foo/bar:

git push foo -f HEAD:bar