问题标签 [git-detached-head]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
13186 浏览

git - 签出分支后分离 HEAD;如何“推”?

这是我所做的:

  1. 签出远程 git 存储库。

  2. 添加到以下[remote "origin]部分.git/config

fetch = +refs/heads/release/BranchName:refs/remotes/origin/release/BranchName

  1. 查看对应的分支:

git checkout origin/release/BranchName

之后git status报道:

HEAD 与 origin/release/BranchName 分离

  1. 添加并检查了一些修改。

  2. 试图git push. 这导致了错误消息:

致命:您当前不在分支上。要将历史推送到当前(分离的 HEAD)状态,请使用

  1. 然后我按照建议的命令:

git push origin HEAD:origin/release/BranchName

并得到以下信息:

错误:无法推送到不合格的目的地:origin/release/BranchName 目的地 refspec 既不匹配远程上的现有 ref 也不以 refs/ 开头,我们无法根据源 ref 猜测前缀。错误:未能将一些引用推送到“RepositoryName”

因此问题是:我做错了什么?如何解决这个问题并推动更改?

0 投票
0 回答
231 浏览

git - Git在分离HEAD后拉浅克隆

让我们考虑以下两种情况。

案例#1(浅克隆)。

案例 #2(没有 --depth 的克隆)。

因此,区别仅在于在第一种情况下我克隆了有限数量的提交,而在第二种情况下我克隆了所有提交。两种情况下的分支都是相同的,因为显示“git branch”输出。

问题:为什么“拉”在第一种情况下有效而在第二种情况下无效?

0 投票
1 回答
66 浏览

git - 如何安全地将 master 中的更改重新设置为分离的 HEAD

直到现在我才意识到我一直在研究一个分离的 HEAD (a32b42b123) 分支。这个分支远远落后于大师。我做了以下操作, git checkout master && git pull origin master git checkout a32b42b123 && git rebase master 将这个分支与 master 同步,并注意到我在这个分支中所做的大部分更改都消失了。现在我明白了什么是分离的 HEAD。但是我怎么能在git rebase master这里执行安全而不消除我所做的更改呢?

0 投票
2 回答
4036 浏览

git - how to commit changes in detached HEAD to a new branch in git

I had a tag, at a very old revision of a repository. I have checked it out

Now I am in detached HEAD state.

I have made some meaningful modifications. I would like to create a new branch mybranch_deviated locally and remotely, and commit all the meaningful changes to it. How to do that?

0 投票
0 回答
579 浏览

android - 在 android studio 中分离 HEAD

我在 android studio 中使用 TFS 插件。我的最后一次提交是错误的,我想回到最后一次提交。我进入版本控制并选择Checkout Revision,这让我处于分离头状态。我不知道 git 命令行,只使用 TFS 插件。我怎么能搭上这个?

0 投票
1 回答
65 浏览

git - 为什么我的 GIT 子模块 *NOT* 是一个独立的头?

基本上与这个问题相反。

我正在克隆一个包含子模块的仓库。运行后

当我cd进入包含子模块的子目录时,我希望看到我处于分离的 HEAD 状态,git status但我不是。我阅读了子模块,发现您可以为子模块设置跟踪,但我从未做过这些步骤。

我已经用不同目录中的 repo 的新克隆重现了这种行为;就好像子模块被设置为以某种方式立即被跟踪。我的同事在同一台机器上运行,相同版本的 git,相同的 .gitconfig(用户名除外)使用相同的存储库获得预期的行为(子模块目录中的分离 HEAD)。

克隆和子模块初始化/更新的屏幕截图

0 投票
2 回答
5735 浏览

git - git rebase --hard 之后,为什么我的主题分支没有变化?

我不小心用 DEV 分支重新定位了我的分支,然后将其推送到远程存储库。使用变基,我选择了当前更改,因此我的本地更改被覆盖。

我在变基中丢失了我之前的提交,但通过运行找到了它git log。然后我跑了git checkout commitId,甚至git reset --hard commitId。但是,在这两种情况下,我的代码库仍然在我的分支上显示最新的重新定位代码。

如何将我的分支恢复到之前的状态?

0 投票
2 回答
1496 浏览

git - 为什么最近, git rebase -i squash 导致头部分离

为什么 git rebase -i with squashes 最近会导致头部分离?它曾经用交互式 rebase 的结果更新我当前的分支。如何获得交互式 rebase 以停止去分离的 HEAD?

在从远程存储库中提取之前,我总是使用 git rebase -i 来压缩我的提交,以简化处理来自 git pull 的任何合并冲突。不必解决可能的多个提交的冲突,我只需要解决一个提交。

我使用的示例命令

在 vim 中编辑 rebase 交互后:

编辑并保存提交后的输出:

这与类似的帖子 git rebase -i development HEAD 导致分离头不同 ,因为提问者想知道如何解决该 ONE 实例的问题。答案是git checkout -b branchName。在这个问题中,我想知道为什么它最近开始发生在我身上,以及如何为所有 FUTURE 实例解决它。

这与类似的帖子git rebase -i with squash cannot detach HEAD不同,因为存在错误消息could not detach HEAD

0 投票
2 回答
110 浏览

git - 恢复由于 Head 分离而意外丢失的提交

切换到另一个分支后我丢失了我的代码(以为我推了它,但头部分离了)

我从 master 切换到 origin/somebranch 在那里做了一些工作然后我不得不快速修复 master 中的一些东西,所以我做了 git add -A git commit -m "some commit" git push git checkout master

我做得很快,所以我没有阅读关于头部分离的消息......所以当我切换回某个分支时,我的更改不存在......我的更改是否丢失或有办法恢复它?

0 投票
4 回答
2427 浏览

git - 为什么签出最近的提交后我有一个分离的 HEAD?

最近,在一个 git 存储库中工作时,我想查看旧提交 ( 68cce45) 处的代码,所以我做了

查看更改后,我想返回到当前版本的存储库并继续工作。因为2bcfd11是最近的提交,所以我做了

然后我做了一些改变并做了

进而

这给了我警告:HEAD detached at 2bcfd11

我很困惑。如果我签出的最后一次提交是在几个版本之前,我可以理解为什么我会处于“分离的 HEAD 状态”。但是由于我签出的最后一次提交是存储库的最新版本,那么为什么我会处于分离的 HEAD 状态?HEAD 现在不是指向存储库的“顶部”吗?