git checkout 1.87.1
warning: unable to unlink web/sites/default/default.settings.php: Permission denied
... other warnings ...
Note: checking out '1.87.1'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again.
Example:
git checkout -b <new-branch-name>
HEAD is now at 50a7153d7... Merge branch 'hotfix/1.87.1'
$ git checkout master
error: The following untracked working tree files would be overwritten by checkout:
web/sites/default/default.settings.php
... other files ...
git checkout master -f
Previous HEAD position was 50a7153d7... Merge branch 'hotfix/1.87.1'
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
7条答案
按热度按时间7nbnzgx91#
如果您记得之前 checkout 了哪个分支(例如
master
),则只需以脱离 detached HEAD 状态。
一般来说:
git checkout <branchname>
会帮你摆脱困境。如果您不记得最后一个分支名称,请尝试
这也会尝试 checkout 您上次 checkout 的分支。
f4t66c6m2#
使用
git reflog
查找以前 checkout 的提交的哈希值。一个快捷命令是
git checkout -
,它可以到达您最后一个 checkout 分支(不确定它是否可以正确处理分离的HEAD和中间提交)m528fe3b3#
我 遇到 了 这种 边缘 情况 , 我 签 出 了 以前 版本 的 代码 , 其中 我 的 文件 目录 结构 是 不同 的 :
中 的 每 一 个
在 这种 情况 下 , 您 可能 需要 使用 - - force ( 当 您 知道 返回 到 原始 分支 并 放弃 更改 是 安全 的 做法 时 ) 。
git checkout master
无法 工作 :格式
git checkout master --force
( 或git checkout master -f
) 工作 时间 :格式
ryhaxcpt4#
你可能在
detached HEAD
状态下做了一些新的提交。我相信如果你按照其他答案的建议去做:那么你可能会丢失你的提交!!相反,你可能想这样做:
然后把
commits-from-detached-head
合并到你想要的分支中,这样你就不会丢失提交。ghhkc1vu5#
一般情况下:
git checkout <branch*>
(git checkout master
是一种特殊情况)。*我们(意外地)从其中分离了一个提交(使用
git checkout <commit_hash>
)vecaoik16#
以防有人和我一样有同样的优势:我有一个名为
test
的分支,并试图创建一个名为test/my-experimental-feature
的分支。这让git感到困惑,因为它认为我引用的是一个已经存在的分支。我把它改为test--my-experimental-feature
,它运行得很好。niknxzdl7#
git checkout master对我不起作用。起作用的是:
git检出主