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

svn up .

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

git checkout HEAD^ src/

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

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


当前回答

分离的HEAD表示您当前不在任何分支上。如果您想保留当前的更改并简单地创建一个新分支,您可以这样做:

git commit -m "your commit message"
git checkout -b new_branch

之后,您可能希望将此新分支与其他分支合并。git“a dog”命令总是有用的:

git log --all --decorate --oneline --graph

其他回答

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

试着在你的分行结账

如果您已经更改了不想丢失的文件,可以将其推送。我已经在分离模式下提交了它们,之后您可以移动到一个临时分支以稍后在master中集成。

git commit -m "....."
git branch my-temporary-work
git checkout master
git merge my-temporary-work

摘自:

如何处理在分离的头脑中做出的承诺

补遗

如果您希望返回的分支是最后一次签出,则可以简单地使用checkout@{-1}。这将带您返回上一次结账。

此外,您可以将此命令别名为,例如,git global--config alias.prev,这样您只需键入git prev即可切换回上一个签出。

处于“分离头部”意味着head指的是特定的未命名提交(与命名分支相对)(cf:https://git-scm.com/docs/git-checkout部分分离的头部)。实际上,这意味着您签出了一个提交,但没有与之关联的分支名称。

您可以选择只创建与提交相关联的新分支

gitbranch新的分支名称。

这允许您将当前状态保存在名为new branch name的新分支中,而不再处于分离的头部状态。

或者,如果您希望返回到以前的状态,则需要选择之前选择的分支

git结帐@{-1}

吉特告诉我怎么做。

如果键入:

git checkout <some-commit_number>

保存状态

git add .
git commit -m "some message"

然后:

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