1. ホーム
  2. git

[解決済み] 履歴を残さないGit非難

2023-03-23 09:15:50

質問

msysgitを使用して)ファイルに対してgit blameを実行すると、いつも次のようなプリントアウトが表示されます。

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

つまり、すべての行をNot Yet Committedとして表示します。

私は多くのコミットがある多くのファイルでこれを試しましたが、常に同じ結果でした。また、相対パスとフル パスを使用してみましたが、違いはないようです。

TortoiseGit の blame を使用しようとすると、常にすべての行が最初のコミットで最後にコミットされたものとして表示されます。

とはいえ、私が言ったように、これらのファイルの履歴には実際には数十のコミットがあります...。

アイデアはありますか?

編集 - 詳細情報

  • このリポジトリがホストされている GitHub では、Git blame は問題なく動作します。
  • linux マシンにクローンしてそこで責めを負わせてもうまくいきます。
  • msysgit でのみ、これは動作しないようです。

どのように解決するのですか?

git blame file.txt は、作業コピーの file.txt のバージョンに責任を負います。もし file.txt に Windows-改行 (CRLF) がある場合、レポにある core.autocrlf = true がある場合、file.txt のすべての行が異なるとみなされ、その行は git blame によってまだコミットされていないと報告されます。

その理由は git blame <my_branch> (あるいはさらに良い git blame HEAD は、作業コピーのバージョンを責めないので、まだコミットされていない行がある可能性がないのです。