簡體   English   中英

Git:恢復到以前的提交狀態

[英]Git: Revert to previous commit status

我糊塗了。 我想回到我在“git log”中確定的先前提交。

但是當我做“git checkout”時,我沒有得到所說的提交。 沒有什么改變。 它告訴我我處於分離的 HEAD 模式,但我想要的文件不在那里。

我做錯了什么?

先生

git reset --hard <commit>從聯機幫助頁:

將工作樹和索引與正在切換到的樹的索引相匹配。 對工作樹中跟蹤文件的任何更改都將丟失。

git checkout用於將您的工作目錄切換到其他分支或提交。 這並沒有將HEAD移動到那里。

不要git reset -hard它是永久性的!

請用

git stash -u 

代替! 如果你有一件工作在那里偶然發生,你仍然可以把它拿回來。 這永遠不會被推到你的遙控器上,除非你選擇通過制作一個分支並推動它來實現這一點。

此外,您正走在正確的軌道上,您可以使用git checkout來完成同樣的事情。 語法是

git checkout HEAD -- . 

但它與git reset --hard有同樣的問題。 堅持藏匿,你將來會挽救失去的頭發。

更長的答案

以上解決方案可以恢復所有更改。 但是,你問過如何擺脫一些變化。 為了完整起見,我會加上這個。

要做到這一點,你可以

git add file1 file2 file3
git stash save --patch

現在,系統將提示您確切要求消失的內容......直到達到任何級別的粒度。 因此,如果您選擇這樣做,您可以安全地“拒絕”對單個文件進行少量更改。

首先在 git 中你得到你的提交標識符並使​​用該標識符你可以恢復你的提交

git reset --hard 50c0369
git push -f 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM