Git で単一ファイルの履歴を追跡するときに完全なコミットを表示するにはどうすればよいですか?
質問
約 2 年の歴史を持つ Git リポジトリがあります。その中に単一のファイルがあり、すべてのコミットと各コミットを検索したいと思います。その中でコミットされた他のすべてのファイル。このファイルの名前が file.txt であると仮定します。このファイルを引数として gitk を実行できます。
gitk file.txt
そして私は各コミットを取得します。ただし、gitk でそのツリーを参照すると、file.txt に加えられた変更のみが表示されます。そのコミットで他にどのようなファイルが変更されたのかを確認したいと思います。各コミット SHA1 をコピペして表示することはできますが、このファイルに関連するコミットは 100 件以上あります。
画面右下の「コメント」セクションが空であることに気付きました(「コメント」というテキストのみが表示されています)。おそらくそこにファイルのリストが表示されるでしょうか?
解決
コマンドラインで、
git log -p --full-diff file.txt
あなたが何をしたい意志出力ます。
あなたがそれたinvoke、gitkでそれを見る必要がある場合は、の無の引数、コミット見つける「感動パス」file.txtは、コミットはそのファイルが太字になりますが含まれています。そして、あなたはそれを横断する「アップ」ボタン「ダウン」を使用することができます。
他のヒント
実際には、コマンドラインから直接ではなく、gitk で「--full-diff」機能を使用できます。次のことを行うだけです。
- 通常の方法で gitk を起動します。例:
gitk file.txt
- メニューから「表示 -> ビューの編集...」を選択します。「コマンド ライン」ビューを編集していることを確認してください。
- 「git log への追加引数」の横の編集ボックスに、次のように入力します。
--full-diff
- 「適用」をクリックするか、[F5] キーを押します。
それで済むはずです。これは非常に便利なオプションであるにもかかわらず、なぜ gitk がコマンドラインからこれを使用することを許可しないのかは私にとって謎です。
にまでさかのぼる日付メーリングリストから別の解決策 2008 のます:
に「リストされたパスに制限差分」オプションをオフにしてください 設定メニュー(またはあなたの〜/ .gitkに "0 limitdiffsセット" を追加)。