标签: git-detached-head

Git创建分离HEAD所在的分支

我试过这样的事情:

git branch temp
Run Code Online (Sandbox Code Playgroud)

创建一个新的分支,但不要移动HEAD.但我得到:

# Not currently on any branch.
Run Code Online (Sandbox Code Playgroud)

我不想合并任何东西,我只想要一个新的分支HEAD.

git git-branch git-detached-head

76
推荐指数
2
解决办法
4万
查看次数

处于分离头状态时如何保存更改?

与Git合作,我不得不回到特定的提交.我做了一些更改,现在我想提交它们.这样做的正确方法是什么?

我的项目现在处于分离-HEAD状态.如果我提交,我的更改是否会被保存

git commit
Run Code Online (Sandbox Code Playgroud)

?否则,我该怎么做才不会丢失我的更改?

git git-commit git-detached-head

10
推荐指数
3
解决办法
5539
查看次数

git拉远程主机在分离头

这一直困扰着我关于git.我有一个包含多个遥控器的存储库,我需要将修补程序应用于遥控器的主分支.所以,我尝试做:

git fetch remote1 master
git checkout remote1/master
Run Code Online (Sandbox Code Playgroud)

但是,我总是处于一个独立的头状态.检查远程主控并应用补丁的正确方法是什么?

git git-patch git-detached-head

7
推荐指数
1
解决办法
6478
查看次数

我怎么最终得到一个独立的HEAD?

我从master检查了一个提交/分支,然后检查回master并写了一些东西.在那之后,我承诺了,但我最终得到了一个独立的HEAD.为什么?

这是我做的:

  1. 创建一个新项目并创建git存储库.
  2. git add
  3. git commit
  4. 输入一些单词
  5. git commit
  6. 结帐到之前的提交
  7. 退房回来

    STEP7

  8. 输入一些单词

  9. 尝试提交; 它提示有一个独立的头.

    STEP9

IntelliJ IDEA的控制台显示:

17:08:58.143: cd C:\Users\jiahao\IdeaProjects\testtt\src
17:08:58.143: git init
Initialized empty Git repository in C:/Users/jiahao/IdeaProjects/testtt/src/.git/
17:09:16.331: cd C:\Users\jiahao\IdeaProjects\testtt\src
17:09:16.331: git -c core.quotepath=false add --ignore-errors -- C.java
17:09:24.407: cd C:\Users\jiahao\IdeaProjects\testtt\src
17:09:24.407: git -c core.quotepath=false commit --only -F C:\Users\jiahao\AppData\Local\Temp\git-commit-msg-0.txt -- C.java
[master (root-commit) 22d1c79] first commit
 1 file changed, 6 insertions(+)
 create mode 100644 C.java

17:09:38.060: cd C:\Users\jiahao\IdeaProjects\testtt\src
17:09:38.060: git -c core.quotepath=false commit --only -F C:\Users\jiahao\AppData\Local\Temp\git-commit-msg-0.txt -- C.java …
Run Code Online (Sandbox Code Playgroud)

git intellij-idea git-detached-head

7
推荐指数
1
解决办法
2745
查看次数

检出分支后分离 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)状态的历史记录,请使用

git push origin HEAD:<name-of-remote-branch>
Run Code Online (Sandbox Code Playgroud)
  1. 然后我按照建议的命令进行操作:

git push origin HEAD:origin/release/BranchName

并得到以下信息:

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

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

git git-detached-head

7
推荐指数
1
解决办法
1万
查看次数

可以git log --decorate明确告诉我HEAD是否已分离?

我知道,在Git的说法中,"分离的HEAD"对应于符号引用HEAD未指向任何分支的状态.我也知道git branch,例如,会告诉我我是否处于分离-HEAD状态,例如

* (detached from 9a2ef02)
  master
Run Code Online (Sandbox Code Playgroud)

或不,例如

* master
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否有办法使输出git log --decorate完全明确,我是否处于分离-HEAD状态.这是一个用"明确的"来解释我的意思的例子.

在此输入图像描述

说我在master,我的历史看起来如下:

4d860e9 (HEAD, master) Remove trailing whitespace
9a2ef02 Correct typo in header
f0badb5 Add to-do section to README
Run Code Online (Sandbox Code Playgroud)

案例1:明确的分离-HEAD状态

如果我跑

git checkout 9a2ef02
Run Code Online (Sandbox Code Playgroud)

那么输出git log --decorate --oneline就是

9a2ef02 (HEAD) Correct typo in header
f0badb5 Add to-do section to README
Run Code Online (Sandbox Code Playgroud)

因为HEAD此输出旁边没有列出分支引用,所以我确信我有一个分离的HEAD.

案例2:unached-HEAD状态与否?

但是,如果我跑

git checkout 4d860e9
Run Code Online (Sandbox Code Playgroud)

然后HEAD不指向master,但直接提交 …

git git-log git-detached-head

6
推荐指数
1
解决办法
366
查看次数

HEAD在HEAD提交ID上分离了,这是什么意思?

git status 说:

HEAD detached at e1997bd
Run Code Online (Sandbox Code Playgroud)

git rev-parse HEAD说:

e1997bd
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

我认为HEAD脱离意味着HEAD没有指向分支尖端.

git git-detached-head

6
推荐指数
1
解决办法
2574
查看次数

git checkout refs/heads/master 分离 HEAD

我有一个本地分支“master”跟踪远程分支“origin/master”。

当我像这样结账时:

git checkout refs/heads/master
Run Code Online (Sandbox Code Playgroud)

我最终得到了一个独立的头:

注意:查看“refs/heads/master”。

您处于“分离 HEAD”状态。您可以环顾四周,进行实验性更改并提交它们,并且可以通过执行另一次签出来放弃在此状态下所做的任何提交,而不会影响任何分支。

显然我可以直接查看“master”,但这恰好是一个不明确的参考。我只想知道在不分离 HEAD 的情况下消除分支名称歧义的“git 方式”是什么。

git git-detached-head

5
推荐指数
1
解决办法
4578
查看次数

如何调和分离的头部和起源/大师?已经签出旧哈希

介绍和搜索

所以我认为我犯了一个严重的错误,我很担心。我已经解析了论坛上的超脱头脑,我已经接近找到答案了,但是场景太具体了,不适用于我所处的位置。如果您找到回答我问题的特定线程,请链接我。

例如:如何将分离的 HEAD 与 master/origin 协调?

那家伙已经做了git rebase -i,而我没有。我试过变基,但它没有解决我的问题。

小背景

  • 我是 git 新手;我只自己使用 git
  • 我拥有远程存储库
  • 需要旧代码集,这是时间敏感的问题
  • 我学习了一些编程,并在没有其他人编码的工作场所使用它(所以我不能完全寻求帮助)

问题:

要使用工作代码访问旧提交,我做了(可能是错误的事情):

git log
git checkout <hash-of-desired-old-commit>
Run Code Online (Sandbox Code Playgroud)

我继续完成代码。感谢上帝的版本控制!但是射击,为什么 git 这么复杂?我如何保存这项工作?我现在处于一个超脱的头脑中。Origin/Master 在未来的一些提交中最好全部删除。

我尝试过的

  • 将整个文件夹复制并粘贴到其他地方只是为了备份
  • git add -A跟着git commit -m "oh shit, detached head commit"git rebase master
  • git reset --hard HEAD~3根据此处的建议:检查旧提交并使其成为新提交

问题:我如何将我的超然头与原点/大师调和?一旦和解,我是否需要git push --force或其他什么(特别是--force旗帜)?这个独立的头有工作,我读到我等待的时间越长,垃圾收集可能会来吃我丢失的分支。抱歉,我确实缺乏任何正式的 git 培训……我几乎准备好检查 origin master 然后重写代码。

先感谢您。

git github git-detached-head

5
推荐指数
1
解决办法
2674
查看次数

为什么在检查最近的提交后我有一个分离的 HEAD?

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

git checkout 68cce45
Run Code Online (Sandbox Code Playgroud)

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

git checkout 2bcfd11
Run Code Online (Sandbox Code Playgroud)

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

git add *
Run Code Online (Sandbox Code Playgroud)

进而

git status
Run Code Online (Sandbox Code Playgroud)

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

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

git git-checkout git-detached-head

5
推荐指数
1
解决办法
2232
查看次数