[英]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.