2017-05-05 38 views
0

我合併了一個遠程分支到我的本地倉庫,並創建了26個本地提交。如何撤消Git中的上次本地提交併返回到遠程狀態?

現在,我想恢復這種合併,但它認爲將提交1還原爲1或尋找遠程版本的最後一次提交還原爲非常枯燥和錯誤敏感。

我經歷了How to undo last commit(s) in Git?這個帖子,它的答案很有意思,但是我沒有找到任何簡單的方法來做我的本地回覆。

任何人都可以幫忙嗎?

回答

1

使用git登錄&的Git復位

git log 

這會給你的消息,通過它可以識別您提交ID提交ID。

使用提交ID然後重置。

git reset <commit-id> 

如果你永久想要回到那個提交。您可以使用以下內容。

git reset --hard <commit-id> 
+0

可以重置爲分行所以你可以通過'git reset --hard origin/master'來重新設置你最後一次與遠程設備通信的遠程主機。 –

+0

@ LasseV.Karlsen可能認爲origin/master將具有相同的提交id,因爲OP沒有提到origin/master和本地分支同步。 – harshitpthk

+0

好的,但我正在尋找一個解決方案,而不使用commid id,並且當我將**合併到**我的本地分支時,我的目的是回到這個確切分支的遠程狀態。所以感謝@Lasse V. Karlsen @「Lasse V. Karlsen」 – geekobi

0

我試過一個或兩個東西,這個人是有點髒,但它很簡單,似乎工作:

  • 結帳到另一個分支(創建一個如果沒有):git checkout -b tempo
  • 去除不良當地分公司:git branch -D dirty_one
  • 重新創建一個遠程同步的本地分支:git checkout -b dirty_one origin/dirty_one

就是這樣。

我覺得很髒的東西是壞地方提交仍然在當地回購,但分支不知道他們,所以他們可能會保持隱藏。

如果我重做我的合併(我其實已經做了),合併只是工作很好,但我不知道究竟如何(即髒的部分...)