我尝试提交更改。经过很多问题和冲突,我设法解决了每一个问题。但是,我提交的代码目前不在任何分支上(如git status
所示)。我该如何解决这个问题?我试过几个解决方案,但没有一个对我有效。我尝试了命令git merge
,但它说它已经是最新版了。
git log --all --graph --oneline --decorate
的结果是:
* 7833c31 (HEAD) Changed LI tool
* c205a25 Fixed merge conflicts
* 7b10e48 (vsproj/master, master) 4-7-2013
|\
| * cc51cb0 3/9/2013
| * 62ea718 Updated mail and added barcode
| * 9a3573a 1-7-2013
| * 96ded0e Updated ExamsPrinter
| * be6638a 12-25-2012
| * 89cba4b Added HTML to PDF and updated Email app
| * fa96aeb Updates
| * 9ffcfcc Changes in CloudDownloader, LinkedIn & Twitter apps
| * 609c555 Added README file
| * bf8a344 Started implementing CloudDownloader, created FileDownloader, updated FacebookInfoBot
| * c3556ce First Commit
* 3a59cd5 4-7-2013
答案 0 :(得分:9)
不确定发生了什么,但您可以通过创建新分支然后合并它来轻松修复它:
git branch lost_changes
git checkout master
git merge lost_changes
答案 1 :(得分:2)
所以你可以在你的历史中看到这里发生了什么。你做了一个合并,产生了
* 7b10e48 (vsproj/master, master) 4-7-2013
然后明确断开您的结帐与您提交的主分支提示%1
* c205a25 Fixed merge conflicts
和
* 7833c31 (HEAD) Changed LI tool
所以,只需将当前结帐时的主分支提示
git checkout -B master HEAD
这看起来像是最简单的恢复。
为什么明确提交合并冲突?在接受提交之前,你必须告诉git你已经解决了所有问题(通过git add
正确的内容)。
%1:通常的方式我得到一个没有参考的“超级”结账是git checkout HEAD@{1}
,有很多方法,git对于分支提示相当随意,所以你会对你感觉到什么后感到满意在这里。
答案 2 :(得分:0)
如果你真的不在分支机构,那么简单的解决方案是创建一个新的分支:
git branch <name> 7833c31
或
git branch <name> HEAD
你可以去搞清楚问题,或者希望能够继续你的发展。