2015-06-19 238 views
2

我的存儲庫有2個分支,主人mybranch。我已經多次致力於mybranch,意識到我的許多變化並不是我想要的。如何將舊版本合併到git中分支的頭部?

因此,我做了一箇舊的git checkout使用

git checkout 02c383 

我想這個老承諾是mybranchHEAD對* mybranch *提交。我該怎麼做呢?

當我看着我的樹枝,我看到:

$ git branch 
*(detached from numbershere) 
mybranch 
master 

回答

1
git checkout mybranch 
git reset --hard 02c383 

在此之後,mybranch將被移動到指向02c383

+1

好的,但後來我添加了一個文件,然後做了一個git添加,提交。當我做一個git push origin mybranch時,我得到了「更新被拒絕,因爲當前分支的提示位於其遠程對象的後面」 – Rolando

+0

啊,好的,您已經推過'mybranch'。有沒有其他人在回購工作,還是隻有你?如果它只是你(你必須確定這一點),那麼做一個'git push -f'。否則,我會以另一種方式編輯我的答案。 –

1

您可以將當前分支重置到不同與

git reset --hard <ref> 

在你的榜樣承諾,這相當於

git reset --hard 02c383 

當心

  • 你應該避免做這樣的事情(特別是mybranch已被其他人使用)
  • 回到以前的提交mybranch之前指出(現在dangling commit變得有點棘手,如果你不記得那個SHA。
+0

在重置後立即進行更改後,我無法將gib推送原點mybranch。我做了:git reset,添加了一個文件,git commit,git push origin mybranch。 「[拒絕] mybranch - > mybranch(非快進)」 – Rolando

+0

當然,這是一個很大的紅色警告標誌。你必須使用'git push --force' - 警告你正在做危險的事情(重寫該分支的歷史記錄)。 – StephenKing

相關問題