如何撤消';git checkout-f';获取未提交的更改
我无意中键入了如何撤消';git checkout-f';获取未提交的更改,git,Git,我无意中键入了git checkout-f,因为我试图恢复已删除的文件,但现在所有未提交的文件都消失了。。。那是一天的工作。。。有办法把它拿回来吗?谢谢。您有跟踪文件修改的备份系统吗?你可以从那里拿回来。否则你就不走运了——更频繁地承诺 这次你大概有机会坐在但丁的地狱之外,但这取决于一个非常重要的步骤 在此之前,您必须在某个时间点运行git add。 否则,你不会玩得很开心 如果有,则可以运行git fsck--lost-found来恢复已删除的任何文件。您将得到的不是确切的文件名,而是一个悬空
git checkout-f
,因为我试图恢复已删除的文件,但现在所有未提交的文件都消失了。。。那是一天的工作。。。有办法把它拿回来吗?谢谢。您有跟踪文件修改的备份系统吗?你可以从那里拿回来。否则你就不走运了——更频繁地承诺 这次你大概有机会坐在但丁的地狱之外,但这取决于一个非常重要的步骤
在此之前,您必须在某个时间点运行git add。
否则,你不会玩得很开心
如果有,则可以运行git fsck--lost-found
来恢复已删除的任何文件。您将得到的不是确切的文件名,而是一个悬空的commit blob
makoto@LATLON-Undefined:~/Desktop/smoketest$ echo "Goodbye file" > badfile.txt
makoto@LATLON-Undefined:~/Desktop/smoketest$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
badfile.txt
nothing added to commit but untracked files present (use "git add" to track)
makoto@LATLON-Undefined:~/Desktop/smoketest$ git add .
makoto@LATLON-Undefined:~/Desktop/smoketest$ git reset --hard HEAD
HEAD is now at 7124f25 Initial
makoto@LATLON-Undefined:~/Desktop/smoketest$ git status
On branch master
nothing to commit, working directory clean
makoto@LATLON-Undefined:~/Desktop/smoketest$ git fsck --lost-found
Checking object directories: 100% (256/256), done.
dangling blob 4a503984f4847abd45f4d795d1b74c6482164dcb
两个选项:
git stash list
git stash show stash@{0}
git fsck--lost-found
。Git将把所有悬空的blob保存到/Git/lost-found/other
目录中(尽管它们没有原始文件名)git fsck说了什么?也许这里面有些东西你可以参考。请注意,如果您的文件已暂存但未提交,这将有所帮助;如果它们是未老化的,那么它们几乎丢失了。
git reflog
只能提供实际提交的内容。如果更改未提交,则reflog中不会有任何内容;我想到的是git fsck。如果文件是暂存的,那会有帮助。@Makoto花了一段时间,但最后我得到了一堆悬空提交/blob你不需要自己保存悬空的blob,--失物招领
为你保存到.git/lost-found/other
。@wisbucky:记住,我是从另一个网站上引用了这个例子。如果你有其他的方法,那么我鼓励你把它作为一个单独的答案贴在这里。
git stash list
git stash show stash@{0}