我刚刚从我当地的git repo检查了一个早先的提交。我没有对它做任何改动,我只是看着它。现在我想回到我最近的提交 - 我该怎么做?
我用来检查它的确切命令:
git checkout e5dff6b3c5d704f9b598de46551355d18235ac08
现在,当我输入git log时,在顶部我看到这个签出提交,但我的后来都没有提交。我不小心删除了那些?
答案 0 :(得分:157)
首先尝试:
git checkout master
(如果您所在的分支与master
不同,请改用分支名称。)
如果不起作用,请尝试...
对于单个文件:
git checkout HEAD /path/to/file
对于整个存储库工作副本:
git reset --hard HEAD
如果这不起作用,那么你可以查看reflog以找到你的旧头部SHA并重置为:
git reflog
git reset --hard <sha from reflog>
HEAD
是一个始终指向当前分支中最新提交的名称。
答案 1 :(得分:42)
撤消git checkout
执行git checkout -
,与shell中的cd
和cd -
类似。
答案 2 :(得分:13)
您可能需要git checkout master
或git checkout [branchname]
。
答案 3 :(得分:1)
如果您使用的是 github,则默认分支的名称可能不再是 master
。试试git checkout main
。