2017-07-20 135 views
0

我是非常新的git,無法從谷歌或stackoverflow找到確切的解決方案。我試過 Undo git pull, how to bring repos to old state好,但沒有成功。恢復從選定的分支git拉

我基本上有"initial""pre_dev"分支。通常我將我的初始分支代碼合併到pre_dev分支中。

但是今天我錯誤地把pre_dev換成initial。現在源代碼樹顯示推送通知到初始。所以請讓我知道如何恢復這個。所以我不需要推動這些改變。

我這麼多的嘗試後在源代碼樹中看到:

enter image description here

我不希望這推入初始。所以請在此幫助我。並且很抱歉再次提出這個問題,如果已經由某人解決了任何其他的stackoverflow問題。請幫助我作爲初學者。由於

+0

你的樹是什麼樣的? – Liam

回答

3

如果你想從initial我以爲是不小心做了,那麼你可以很容易做到使用git reset它擺脫pre_dev所有提交的,內容如下:

git reset --hard origin/initial 

重要提示:您還將從pre_dev之前的initial分支中刪除您已完成的所有更改(如果有)。

1

通常,您希望使用git reset --hard將分支指針移回原來的位置。正如Arpit所指出的,這個可能是origin/initial;但是如果您有要保留的未推送更改initial(除了您想要放棄的無意合併之外),那麼您還需要別的東西。

默認情況下,拉會在當前分支上創建一個合併提交。因此,在這種情況下,你可以

git reset --hard HEAD^ 

若拉做別的東西,它可能是更容易使用引用日誌。

git reflog initial 

會告訴你initial ref最近指出的位置;確定表示期望狀態initial的提交。這可能是列表中最近的一次提交,這將意味着

git reset --hard [email protected]{1}