Git归咎于没有任何历史?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

当我将git归咎于一个文件(使用msysgit)时,我总是得到以下类型的打印输出:

00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   1) package co
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   2) {
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   3)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   4)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   5)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   6)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   7)      impor

也就是说,它显示所有行尚未提交。

我在许多文件上尝试过这个,这些文件有很多提交--结果总是一样的。我也尝试使用相对/完整路径,但这似乎没有什么区别。

当我试图使用TortoiseGit的时候,它总是将每一行都显示为在第一次提交时最后一次提交:

即使我说过,这些文件的历史上实际上有几十次提交。

想法?

更多信息

  • Git归咎于GitHub,在那里这个回购是托管的。
  • 如果我将它克隆到linux机器上并在那里进行指责,它也可以正常工作。
  • 似乎只有在msysgit上才不起作用
提问于
用户回答回答于

git blame file.txt将错误归咎于工作副本中的file.txt版本。如果file.txt在回购中有Windows-newline(CRLF),那么core.autocrlf = true,那么每一行文件都会被认为是不同的,并将由git blame还没有承诺。

为什么git blame <my_branch>(甚至更好)git blame HEAD它可以工作,无论在哪个分支)工作,因为它不责怪工作副本版本,因此没有潜在的行还没有提交。

用户回答回答于

找到了解决办法-很奇怪。

如果我运行这个:

git blame file.txt

如上面所示,历史已经被打破了。

如果我这样做了:

git blame my_branch file.txt

它起作用了!

这很奇怪,因为AFAICS的使用不需要分支名称:

$ git blame
usage: git blame [options] [rev-opts] [rev] [--] file

扫码关注云+社区