git blame
以前に削除されたファイルで実行する方法はよくある質問です (でgit rm
)。古いファイル名で実行すると、存在しないファイルと同じエラーが発生します。
% git init
% echo 1 >a
% git add a
% git commit -m.
% echo 2 >a
% git add a
% git commit -m.
% git rm a
% git commit -m.
% git blame a
fatal: cannot stat path 'a': No such file or directory
% git blame z
fatal: cannot stat path 'z': No such file or directory
(以前のコマンドに対して git によって出力された応答は、簡潔にするために省略されています。)
一般的な解決策はgit log --stat
、ファイルが削除されたリビジョンを探すことです。その後、そのリビジョンの親を に渡すことができますgit blame
:
% git blame 11144~1 -- a
97da6499 (Ed Avis 2016-01-14 11:00:40 +0000 1) 2
これは機能しますが、このようにログを手動で検索するのは面倒です。a
gitに「過去のリビジョンで呼び出されていたファイルを調べたい」と伝える方法はありませんか? 私は次のような簡単なものを望んでいます
% git blame --any-file-named a
その名前のファイルのリポジトリの履歴全体を自動的にチェックします。