在git中检索丢失的HEAD分支

 沿无际空间 发布于 2023-02-07 18:11

我有一个非常简单的Git项目,只有一个Master分支而且没有起源.

在我的项目的某个地方,我不小心在我的项目中创建了一个独立的HEAD,然后在分离的一堆提交后HEAD,尝试将它合并回我的Master分支.我在SourceTree中这样做,起初合并似乎工作(图表显示主人进入头部,并且我修复了合并冲突),但后来我双击Master切换到那个分支然后突然我HEAD消失了.我无法在所有分支下的SourceTree中找到它,git branch并且git log在命令行上也只显示我的主分支.

反正有没有从我失去的超脱中取回我的承诺HEAD

2 个回答
  • 我在SourceTree的任何地方都找不到它

    返回命令行界面并执行git reflog.
    您应该能够在该日志中找回HEAD的SHA1.

    请注意,您不需要将已分离的HEAD分支"合并"回主控.

    您只需将master重置为当前分离的HEAD提交即可.
    请参阅" 如何修复Git分离头? "

    git checkout master
    

    以纯SourceTree方式(如在此线程中)

    http://edwon.tv/wordpress/wp-content/uploads/2012/09/Screen-Shot-2012-10-15-at-4.15.22-PM.png

    您还可以检出现有分支,然后右键单击最新提交并选择Reset <branch>此提交将分支指针移动到您希望的位置.

    HEAD显示,这意味着你在一个分离的头,这意味着你没有分支签出,它们是由时任提交不会动任何分支机构.如果你在SourceTree中签出一个分离的HEAD,它会很明显地警告你,所以也许这是事先在命令行上完成的,你在SourceTree中看到了后效.

    替代方案:

    HEAD使用new branch命令从我的" "分支(根本不是一个分支)创建一个分支.那时头不见了.
    然后我能够将该分支与master合并,并删除我创建的不需要的分支HEAD.

    2023-02-07 18:14 回答
  • 这对我有用:

      使用git reflog 命令查找消失的头版本.

      使用git checkout @{-1}移动HEAD回一个消失了.数字-X是从当前头部消失的提交数量.-1意味着消失的版本1远离当前的HEAD.

      创建一个分支以保存消失的版本

    2023-02-07 18:16 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有