5

我试图提交更改。在经历了很多问题和冲突之后,我设法解决了每一个问题。但是,我提交的代码目前不在任何分支上(如图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
4

3 回答 3

9

不确定发生了什么,但您可以通过创建一个新分支然后合并它来轻松修复它:

git branch lost_changes
git checkout master
git merge lost_changes
于 2013-04-07T21:46:15.707 回答
2

所以你可以在你的历史上看到这里发生了什么。你做了一个合并,生产

*   7b10e48 (vsproj/master, master) 4-7-2013

然后在明确断开您的结帐与您提交的主分支提示%1 的连接之后

* c205a25 Fixed merge conflicts

* 7833c31 (HEAD) Changed LI tool

因此,只需让您当前的结帐成为您所做的主分支提示

git checkout -B master HEAD

这看起来像是这里最简单的恢复。

为什么要明确提交合并冲突?你必须告诉 gitgit add在它接受提交之前你已经解决了所有问题(通过正确的内容)。

%1:我得到一个无引用“分离”结帐的通常方式是git checkout HEAD@{1},有很多方法,git 对分支提示相当随意,所以在你对这里发生的事情感到满意之后你会不会。

于 2013-04-07T23:08:07.400 回答
0

如果您真的不在分支上,简单的解决方案是创建一个新分支,如下所示:

git branch <name> 7833c31

或者

git branch <name> HEAD

并且您可以着手解决问题,或者希望继续您的开发。

于 2013-04-07T21:45:41.643 回答