git status说:HEAD与特定的sha号分离

时间:2016-09-04 10:29:15

标签: git bitbucket

我是Git的新手。我总是在一个分支上工作。现在我处于一种我不太了解的状态。我的git状态说:HEAD与25e7afb脱离。

实际上,前几天我确实退房了($ git checkout),之后我一直收到警告HEAD已分离并进行新的更改。虽然没有任何新的改变。

虽然我重置了checkout和HEADS,但仍然说HEAD已经分离。

当我打算推送新提交时,我收到附加错误。

我还附上了我的gitk截图。

有人能帮我解决这个问题吗?

enter image description here enter image description here

2 个答案:

答案 0 :(得分:1)

解决方案是在了解结账实际执行的内容以及工作原理之后。

当您最初创建提交时,git会自动创建一个具有默认已知名称preventDefault()的分支。

$('#form_saisie').submit(function(e) {
    e.preventDefault();

    if ($('#document').val() != "" && $('#description').val() != ""){
        api_sendvalue_adddoc();
    }

    if ($('#document').val() == "")
        alert('test');
    else if ($('#description').val() == "")
        alert('test2'); 
});

如您所见,C1表示初始提交。有一个指针(分支),即master,指向C1。

当你创建另一个提交时,指针移动到新的提交:

C1
 ^
 |
 master

主人现在指向C2。 C2的父亲是C1。每个提交都指向前面的提交。

图中未显示另一个指针。这是HEAD指针。 HEAD指向您当前的提交。意思是,如果你是C2,HEAD指向C2。这有助于您轻松地在提交之间跳转。

此时,如果你结账到C1,你正在移动HEAD指针指向C1并离开(分离)C2。

因此,在大多数情况下,如果您结帐到另一个提交,通常在稍后的某个时间点,您会再次结帐到最近的提交。

本教程的

This部分讨论了结帐和重置。您可能需要从branches开始阅读。

答案 1 :(得分:1)

我执行了以下操作,问题已解决!

  $  git checkout master

这有助于回到主版本(最新版本),而不再脱离了!

P.S。假设我们没有新的变化要解决。