2017-07-07 126 views
1

我想完全删除远程分支中的多个提交。GIT:从第二个到第五个提交在远程分支中删除

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

一旦我将分支更改为正确的分支(通过浏览器),我看到还有几个不属于该分支的提交。我不需要他们。

git reset --hard HEAD~5 

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

那么,什么是一个正确和清晰的algorythm?

谢谢。

+0

你是什么意思执行'git reset --hard HEAD〜5'并手动应用更改会得到更多的提交? –

回答

1

啊......我不太明白你想要什么。如果你想要做的是从分支的历史中删除几个版本(本地或远程),你需要做的是:

  • 获取两个版本的(sha1)ID你想获得前最新的情侣之前最古老的夫妇从最早
  • 摘樱桃修订摆脱
  • 结帐修订的一个版本(这将丢弃旧的所以不会应用)
  • 樱桃挑选从最新的分支到原始分支的提示。

因此......说远程分支是foo/bar,修订版本是rev1(最旧)和rev2(最新)。

你要做的就是:

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

当你达到这一点,你可以在它上面创建一个本地分支,或只是将其推入富/酒吧,如果你要替换它:

git push foo -f HEAD:bar