Git签出标签指向“;目前不在任何分行”;
我在标记签出时遇到了一个非常奇怪的问题。在将develop的最新更改合并到master之后,我从master创建了一个标记,并将其推送到remote。然后在生产中成功拉取,但当我签出标记并运行git状态时,我得到 目前不在任何分行 在我的本地机器上,git状态正确地显示头部在特定标记处分离,例如1.0.0Git签出标签指向“;目前不在任何分行”;,git,version-control,git-tag,Git,Version Control,Git Tag,我在标记签出时遇到了一个非常奇怪的问题。在将develop的最新更改合并到master之后,我从master创建了一个标记,并将其推送到remote。然后在生产中成功拉取,但当我签出标记并运行git状态时,我得到 目前不在任何分行 在我的本地机器上,git状态正确地显示头部在特定标记处分离,例如1.0.0 git branch -v * (no branch) ca992e2 Example commit message develop e945a50 Example commit me
git branch -v
* (no branch) ca992e2 Example commit message
develop e945a50 Example commit message
master ca992e2 Example commit message
有什么建议吗?这是一种“正常”行为。
通过签出标记,可以将本地存储库的头部定位到标记上。你不再在树枝上了。如果您不打算进行任何更改,这并不重要
如果您需要进行更改,我将看到两个选项:
被接受的答案是正确的(我投了更高的票)。详细说明最后一点,一个Git,一个非常古老的1.7版本,只是说你有一个分离的头部,但是一个更现代的2.13版本,说你有一个在v1.0.0中分离的头部-
Git status
命令在这两个版本之间的几年中在功能上得到了许多非常有用和重要的提升
不清楚“在/从分离”代码的确切时间,因为未在中列出,但以下是有用项目的详细列表:
- 1.7.1:
了解子模块git状态
- 1.7.2:
可以在git状态
输出中包含分支名称-s-b
- 1.7.3.5:
learned在路径名中引用不可打印字符git status
- 1.7.6:
fixes(如果在脚本中使用它,则很重要)git status-z
- 1.7.10.13:更多的
和git状态--ceral
修复(同样,对于脚本)git状态-z
- 1.7.11.3:
(和git status
本身)固定用于处理名为git diff
-
- 1.8.2:
学会了在这些操作期间说出哪个分支被平分或重定基址git status
- 1.83:<代码> Git状态学会在<>代码> Git Reuts,< 中报告
- 1.8.4:
learned配置选项git状态
和status.branch
status.short
- 1.8.5:
改进了多个报告:子模块、cherry pick和当前分支(如果有)相对于其上游的状态git status
- 2.4.0:
learnedgit状态
,其-v-v
/在
与的分离得到改进,并与处分离
git分支
- 2.5.0:
详细介绍了正在进行的交互式重新基准git status
- 2.6.2:
不再表示头上拆下的无用git状态
头
“在分离”或“从分离”状态是通过扫描reflog的
头部来计算的,因此它不是100%可靠的,这取决于你在reflog中遇到了什么。它仍然非常有用。谢谢你的解释,这很有意义,但我仍在试图弄清楚为什么在一台机器上git状态显示当前未显示在任何分支上
,而在另一台机器上相同的设置显示头在v1.0.0分离
是什么导致git状态的差异?除此之外,其他一切都很好,正确的提交已签出,文件中没有任何差异。@tslid:git版本在生产和本地机器上说了什么?好吧,就是这样-1.7 vs 2.13这是困扰我的问题,没有实际问题,但我在git文档中找不到。非常感谢。