在Windows上使用git commit命令时出现分段错误

7
我开始使用从Bitbucket克隆的项目。我使用Git Bash和SourceTree。我更改了一个文件并尝试提交我的更改。我可以执行"add"命令,但是当我尝试执行"commit"命令(git commit -m "for testing")时,我会收到以下错误消息:Segmentation fault。在SourceTree中也出现了错误。但是,如果我创建新的文件夹和文件,则提交成功。如何解决这个问题?提前致谢。

1
你使用的是哪个版本的git?控制台的确切输出是什么?我看到的第一件事肯定是获取git的最新版本... - Philippe
我使用的是2.13.1版本。 - Natalija P
6个回答

13

5

如果您已经安装了Git,可以通过Git本身获取最新的开发版本:


git clone https://github.com/git/git

但这对我没有起作用。我卸载了git,然后重新下载,问题就得到解决了。


3

我已经解决了这个问题。最新的git版本(2.13.1)有一个bug - 它发布于2017年5月6日。我安装了之前的版本(2.12.2),现在一切都正常。


1

我在一些项目中遇到了相同的问题,无法检出新分支或现有分支。我从网站上安装了最新版本的git,现在我的版本是

> git --version
  git version 2.13.1.windows.2

问题似乎已经在这个版本中解决了。暂时如此。

0

使用 git reset SHA --hard

其中的 SHA 指向错误之前的有效 SHA

此点之后的更改将会丢失,但仓库已保存。


0
对我来说,问题是由于错误的索引引起的。
在 Git 2.36(2022 年第二季度)中,您将看到更多细节,而不是段错误。 Git 现在检查从 parse_tree_indirect() 返回的值,以将段错误转换为调用 die()。 适用于 clone/checkout,但也可以应用于 commit

请查看提交8d2eaf6(2022年3月1日)由Glen Choo (chooglen)提交。
(由Junio C Hamano -- gitster --合并于提交bde1e3e,2022年3月13日)

checkout, clone:如果无法解析树,则停止运行

签署者:Glen Choo

当一个树的对象ID无效时,parse_tree_indirect()可能会返回NULL
检查NULL而不是继续像它是有效指针一样并导致段错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接