我试图将我的Git工作区推到Github,但是我添加和提交的更改似乎没有上载。
然后,做一个“ git branch”,我得到的东西看起来像这样:
git branch
* (no branch)
master
Run Code Online (Sandbox Code Playgroud)
愚蠢的,我以为我可以重新掌握
git checkout master
Run Code Online (Sandbox Code Playgroud)
现在我的改变似乎已经消失了。我的主分支大约成立了三天。而且似乎没有办法切换回此位置(无分支)。
我检查了这个问题Git:似乎在“(无分支)”中,然后丢失了我的更改,其中答案提示先进行git reflog show结帐。我尝试了,我得到了:
$ git reflog
0f27ae7 HEAD@{1}: checkout: moving from HEAD to master
7b8ee7b HEAD@{2}: commit: 14/05/2017 3:33pm
ff60409 HEAD@{3}: commit: 14/05/2017 3:33pm
0f27ae7 HEAD@{4}: checkout: moving from master to 0f27ae7236aabbe8cccfba82e201e36368a05054
0f27ae7 HEAD@{5}: commit: 11/05/2017 2:33pm
3e4c616 HEAD@{6}: merge origin/master: Fast-forward
1e79818 HEAD@{7}: commit: 10/5//2017 UI
Run Code Online (Sandbox Code Playgroud)
我尝试从中进行结帐,0f27ae7236aabbe8cccfba82e201e36368a05054但是我的更改没有恢复。我想要的是恢复我在(无分支)中所做的最后一次提交(commit:14/05/2017 3:33 pm)。
这是结果git branch -a:
$ git branch -a
* (HEAD detached from 0f27ae7)
UI_linking
master
remotes/ado/newBranch
remotes/origin/UI_linking
remotes/origin/frogs1
remotes/origin/master
remotes/origin/newBranch
remotes/origin/newMas
Run Code Online (Sandbox Code Playgroud)
我的更改丢失了吗?还是有办法恢复它们?
从输出的结果来看,git reflog您的更改是在commit 7b8ee7b(HEAD@{2})上进行的。
以下命令:
git branch lost 7b8ee7b
git checkout lost
Run Code Online (Sandbox Code Playgroud)
应该lost在上述提交上创建一个新分支(名为),然后将其签出。
然后,您可以执行以下操作:
git rebase master
git checkout master
git merge --ff lost
Run Code Online (Sandbox Code Playgroud)
将您恢复的两个提交移到master分支顶部,并使它们显示为master分支历史的一部分。
如果一切看起来不错,那么您可以运行git branch -d lost以删除该lost分支。