如何从这个"没有分支"干净地恢复?脚本

时间:2015-12-09 22:35:33

标签: git git-branch git-commit

由于我尝试在两次提交之间切换,我最终遇到了GitExtensions为我的存储库报告location.location_photos.order(:featured).paginate(page: 1, per_page: 4)的情况。这是(no branch)的输出:

enter image description here

我还没有使用过分支,或者无论如何都是故意的。我的最后一次提交是git reflog。然后我开始试验。我查看了之前的提交(91d96ff),并确认工作集已恢复为该提交时的文件(除了日期戳 - 我不能习惯它!)。然后我再次检查699415c,然后在这两次提交之间反弹几次,最后一次结账离开头部91d96ff,那是我开始的时候。自上次提交以来,我对源进行了更改。

以下是GitExtensions如何展示它:

enter image description here

我注意到通常在91d96ff旁边的小红色三角形缺失了 - 我认为这表明头部在哪里(或者在这种情况下不是)。我猜我有一个独立的头?

为什么Git报告这个"没有分支"?从中恢复的清洁和正确的方法是什么?我需要GitExtension Master吗?

我很想知道在这种状态下我可能做了什么。

2 个答案:

答案 0 :(得分:1)

你可能做了相同的检查提交,如下所示:git checkout 91d96ff这将使你处于一个独立的状态,这就是你的UI在报告" no branch"时的含义。

回到"正常"最好的办法将git stash您的本地更改,然后git checkout master(或您最初使用的任何分支)然后git stash pop恢复您可能拥有的本地更改。如果有任何冲突,那么它们将在那时呈现给您。

这是因为你是"退房"不同的提交。

答案 1 :(得分:0)

我想我会详细说明产生OP的步骤。我一直在使用GitExtensions来处理我所有与Git相关的东西。

最初,我的回购状态如下所示,我正在尝试查看之前的提交,因此我右键单击并选择Checkout revision

  • enter image description here

之后,外观是:

  • enter image description here

请注意显示的(no branch)以及master节点显示为灰色的事实。在确认工作集发生的事情是我希望会发生的事情之后,我又回到原状态:

  • enter image description here

大概让我回到原来的工作集,但仍然是no branch。我应该做的是:

  • enter image description here