Git签出提前结束,出现总线错误(内核转储)

Git签出提前结束,出现总线错误(内核转储),git,Git,我正在使用ubuntu,最近我试图使用此处的说明将git从当前版本2.28更新到最新版本2.29.2,但我未能安装完成此git版本安装所需的“docbook2X” 所以我现在的问题是我的git现在似乎不能正常工作。我的计算机上有一个存储库,如果我尝试签出到另一个分支,它就会失败。因此,基本上,当它试图进行“git签出”时,它突然停止并返回“总线错误(内核转储)” 因此,当我使用“git status”进行检查时,一些文件看起来被git checkout命令修改了,但git没有更改存储库 因此,我

我正在使用ubuntu,最近我试图使用此处的说明将git从当前版本2.28更新到最新版本2.29.2,但我未能安装完成此git版本安装所需的“docbook2X”

所以我现在的问题是我的git现在似乎不能正常工作。我的计算机上有一个存储库,如果我尝试签出到另一个分支,它就会失败。因此,基本上,当它试图进行“git签出”时,它突然停止并返回“总线错误(内核转储)”

因此,当我使用“git status”进行检查时,一些文件看起来被git checkout命令修改了,但git没有更改存储库

因此,我删除了.git/index.lock,然后运行git restore。若要恢复,请再次清理目录。重复此过程,仍然会得到相同的结果。所以基本上,我被困在一个分支上,无法结帐到另一个分支


非常感谢您的帮助更新:这就是我解决这个问题的方法。

  • 我删除了旧的存储库,幸运的是我所有的分支都有一个远程来源,所以我没有丢失任何工作

  • 我撤销了回购协议

  • 然后我把每一根树枝都取了下来

  • 获取每个分支后,我将签出到该特定分支,以确认我现在可以签出到该分支,而不会出现总线错误

    git clone the_new_repo/
    cd the_new_repo/
    git fetch "https://github.com/my_username/project.git" "Branch_To_be_fetched"
    git checkout Branch_that_was_fetched
    

  • 幸运的是,我所有的远程版本都是最新的本地版本更改,所以我没有丢失任何工作。我相信问题是由于
    .git
    文件夹中的文件损坏造成的。我找不到调试这些错误的方法,所以我选择了
    删除并重新克隆repo
    解决方案。

    卸载/删除git,然后重新安装

    步骤1:

    sudo apt-get remove --auto-remove git
    
    步骤2:

    sudo apt install git-core
    

    这表明有些地方出了问题——要么是Git中的一个bug,要么是计算机中的一些严重错误(硬件或软件:可能是坏内存、坏库等)。如果您从头开始构建自己的Git,您可以尝试在调试模式下构建它,看看是否可以通过这种方式跟踪问题。通常大多数人只是安装一个预构建的Git包。您需要2.29.2而不是2.28有什么特别的原因吗?我认为一个git存储库有问题,因为其他git存储库似乎工作正常。这个存储库中似乎有许多错误文件,我不知道如何修复它们。另外,我需要2.29.2版本,因为我正在使用一些工具,但当我检查git时,它看起来也没有安装——我仍然在2.28版本,但安装过程没有返回任何错误。啊,这可能是一个错误安装:如果你让2.29.2自行安装,部分地用2.29.2重写了2.28系统版本,您正在运行的2.28版本正在调用2.29.2部分来完成任务,并且对它们的响应感到困惑。请注意,当您构建Git时,您会告诉它自己应该安装在哪里;当您以后安装Git时,您会告诉它安装在哪里。您必须遵守这两个步骤。那么您认为我应该尝试查找git 2.29.2的安装文件并卸载它吗?你对解决这个问题的建议是什么?好吧,如果你真的打算运行2.29.2,重新构建并重新安装它,但是使用Ubuntu用户使用的配置构建(并安装),不管是什么。