我在我的存储库中做一些工作,注意到一个文件发生了本地更改。我不再需要它们了,所以我删除了文件,以为我可以签出一份新的副本。我想做的Git相当于

svn up .

使用git pull似乎不起作用。一些随机搜索让我找到了一个有人推荐的网站

git checkout HEAD^ src/

(src是包含已删除文件的目录)。

现在我发现我有一个分离的脑袋。我不知道那是什么。我怎么撤销?


当前回答

分离的头部意味着您不再在分支上,您已经在历史中签出了一个提交(在本例中,提交是head之前的提交,即head^)。

如果要删除与分离的HEAD关联的更改

你只需要检查你所在的分行,例如。

git checkout master

下次更改文件并希望将其恢复到索引中的状态时,不要先删除该文件,只需执行以下操作

git checkout -- path/to/foo

这将把文件foo恢复到索引中的状态。

如果您希望将更改与分离的HEAD保持关联

运行gitbranchtmp-这将在名为tmp的新分支中保存更改。运行git签出主机如果您想将所做的更改合并到master中,请从master分支运行gitmergetmp。运行git checkout master后,您应该在master分支上。

其他回答

由于“分离的头状态”使您处于临时分支,所以只需使用git checkout,这将使您处于上一个分支。

吉特告诉我怎么做。

如果键入:

git checkout <some-commit_number>

保存状态

git add .
git commit -m "some message"

然后:

 git push origin HEAD:<name-of-remote-branch>

您可能做了git重置--硬原点/分支。

试着在你的分行结账

分离的头意味着你没有正确地签出你的分支,或者你刚刚签出了一个提交。

如果您遇到这样的问题,请首先隐藏本地更改,这样您就不会丢失更改。

之后。。。使用以下命令签出所需的分支:

假设您想要分支MyOriginalBranch:

git checkout-b someName origin/MyOriginalBranch

通常HEAD指向分支。当它不是指向分支,而是指向像69e51这样的提交散列时,这意味着你有一个分离的HEAD。你需要指出两个分支来解决这个问题。你可以做两件事来解决它。

git checkout other_branch//当您需要提交哈希中的代码时不可能创建一个新分支,并将提交哈希指向新创建的分支。

HEAD必须指向分支,而不是提交哈希是黄金法则。