2014-01-13 222 views
1

我使用的是TortoiseGit,我想回到三天前最後一次提交的分支的末尾。我很難重置幾次,但因爲我不熟悉git,所以我冒險做一些愚蠢的事情,並希望得到幫助。在圖像恢復到git分支

尋找這裏:

enter image description here

master」目前設定在十七點40分56秒在1月10日這是作出的版本,我想了最新版本既是本地的,也是遠程的。 (在此圖像中編輯了一些文本)。

但是,我看到origin/HEADorigin/master是在1月13日(今天)11:04:01製作的版本。因此爲了清楚起見,我想恢復到綠色分支的末尾,並使該版本成爲主版本。我必須做些什麼才能到達那裏?

請說,如果我需要提供更多的信息.​​..

回答

0

你應該可以右鍵點擊該提交大師,選擇推引用,並選擇順序「force」選項push --force你的主人到遙控器上。
(「Force Overwrite Existing Branch (May discard changes)」)

確保使用相同的遠程回購是傳達給其他的,因爲你會被改變,其他人可能已經從拉的歷史。

http://joelabrahamsson.com/PageFiles/215/1664_1998.jpg

+0

感謝您的VonC和Bhaskar您的回答(以及VonC正確設置問題的格式)。我是按照VonC的建議做的,原則上它工作正常 - 當它發生時,另一個用戶有一箇舊版本存儲,我們決定恢復。對不起,我無法拿出積分,而且名聲很低。 – David

0

我對你的問題有部分回答。我不知道tortoisegit那麼圖中的黑線和紅線是什麼?我想象的綠色是master分支。這是本地回購的形象嗎?你目前的分行名稱是什麼?

在命令行/終端窗口上使用git,你可以做到以下幾點。

您可以將HEAD移動到任何提交。爲了簡潔,可以說SHA of Jan 10th 17:40:56提交是c。如果這是您的提交歷史/日誌。

a----b----c----d----e <-- master branch 
        ^
        HEAD 

所以,做git checkout c應該設置你想要離開後提交到位HEAD

a----b----c----d----e <-- master branch 
     ^
      HEAD 

這叫做detached狀態。如果你做git branch,它是這樣說的。你可以從這一點繼續做新的提交,但由於它們沒有被任何分支引用,所以git可以將它們垃圾回收。

另外,如果你想刪除提交de和移動HEADc,做git reset --hard c。如果您想在此處更改de更改,請將HEADmaster分支更改爲c,然後執行git reset --soft c。您將看到de作爲在git status中提交的更改。