git - `git fetch` 后跟 `git checkout FETCH_HEAD` 检查看似任意的意外提交
问题描述
我经常处于想要从 git 远程检出特定 refspec 而不在本地给它命名的位置。我通常用来执行此操作的命令是以下形式:
git fetch <remote-url> refs/x/y/z && git checkout FETCH_HEAD
大多数情况下,这按预期工作。也就是说,在 refspec 所指的提交上,我最终处于分离的头部状态。然而,大约每周一次,命令完成没有错误,但我最终在祖先链的某个地方出现了一些我没有要求的奇怪的古老提交。
示例输出:
remote: Counting objects: 25525, done
remote: Finding sources: 100% (396/396)
remote: Total 396 (delta 129), reused 376 (delta 129)
Receiving objects: 100% (396/396), 167.79 KiB | 2.33 MiB/s, done.
Resolving deltas: 100% (129/129), completed with 68 local objects.
From <remote-url>
* branch refs/x/y/z -> FETCH_HEAD
Checking out files: 100% (26834/26834), done.
Previous HEAD position was ...
HEAD is now at 8315f9bc89 Some extremely old commit that is definitely not refs/x/y/z
在此之后立即执行完全相同的命令给了我我希望首先获得的提交。
这里可能出了什么问题?考虑到它说它将 FETCH_HEAD 设置为我要求的并且没有返回错误,我什至不明白为什么它在下一刻指向错误的提交。
建议使用哪些步骤来调试它?我能看到的唯一模式是,当它出现问题时,它总是完全相同的旧提交被签出。它似乎没有任何特殊之处,只是它看起来像是 repo 中具有标签的第一个更改之一。
解决方案
推荐阅读
- vhdl - 带有 OSVVM 的 GHDL
- linux - mailx 不允许管道正文文本和同时指定文件附件?
- jmeter - 第一次测试失败后,Teamcity 不显示 jmeter 测试结果
- excel - 编写宏/公式以匹配来自 2 个不同工作表的数据
- nginx - 带有error_page +多个proxy_pass的Nginx状态码
- javascript - 文本从叠加层继承不透明度。使用 JS 进行样式设置
- c# - 使用 BlobContainerClient.UploadBlobAsync() 设置内容类型
- python - 将字典中的 numpy 数组添加到数据框
- amazon-web-services - AWS S3 Select 中的 SKIP/OFFSET/ScanRange 行
- python - 如何在python3中动态更新多行的终端输出?