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