Gitでファイル履歴を表示する方法は?


133

Subversionを使用すると、TortoiseSVNを使用してファイルの履歴/ログを表示できます。

Gitでこれを行うにはどうすればよいですか?

特定のファイルの履歴レコードを探し、異なるバージョンを比較する機能。

回答:


156

git logコミット履歴を表示するために使用します。各コミットには、ハッシュキーであるリビジョン指定子が関連付けられています(例:14b8d0982044b0c49f7a855e396206ee65c0e787およびb410ad4619d296f9d37f0db3d0ff5b9066838b39)。2つの異なるコミットの違いを表示するにgit diffは、次のように、両方のコミットのリビジョン指定子の最初の数文字を使用します。

# diff between commits 14b8... and b410...
git diff 14b8..b410
# only include diff of specified files
git diff 14b8..b410 path/to/file/a path/to/file/b

コミットからコミットまでに発生したすべての違いの概要を知りたい場合は、git logまたはgit whatchangedpatchオプションを使用します。

# include patch displays in the commit history
git log -p
git whatchanged -p
# only get history of those commits that touch specified paths
git log path/a path/b
git whatchanged path/c path/d

7
-pのヒントに感謝します。これは、どのリビジョンが少しのコードに関係しているかを見つけるのに非常に役立ちます。
Christopher Pickslay 2014年

100

git diffgit logが必要なようです。gitkもチェックしてください

gitk path/to/file
git diff path/to/file
git log path/to/file

3
これがgitkの別の節です。これは、gitリポジトリ内の単一ファイルのすべてのスナップショットを参照するための優れた方法を提供します。
レイブラウン

1
デフォルトではgitkは差分と10行のコンテキストを表示しますが、ファイル全体のスナップショットを見たい場合はどうでしょうか?「Lines of context」を大きな値(100000など)に設定するだけです。次に、コミット間を前後に切り替えて、ファイル全体をさまざまな時点で確認できます。(ファイル内を検索することもできます。)
アンチノーム2014

35

gitk name_of_fileを使用したい

これは、すべてのファイルへの変更を表示する代わりに、各コミットでファイルに発生した変更の一覧を表示します。発生したことを簡単に追跡できます。


30

あなたはまた、使用することができTIG素敵な、ncursesベースのgitリポジトリブラウザ用。ファイルの履歴を表示するには:

tig path/to/file

29

私のお気に入りはですgit log -p <filename>。指定したファイルのすべてのコミットの履歴と、各コミットの差分が表示されます。


11

含む多くのGitの履歴ブラウザ、git log(と'gitのログ--graph')、gitk(Tcl / Tkで、Gitリポジトリの一部)、(Qtの中)QGit、TIG(gitのにテキストモードインターフェース、ncursesベースを使用して)、クスクス(中GTK +)、TortoiseGit、git-cheetahはパス制限をサポートしています(例:)gitk path/to/file


@RobertVuković私はこれが古い質問であることを知っています...しかし、以下の私の答えを見てください!
brianc、2015年

4

あなたはできるだけTortoiseSVNのに近い何かをしたい場合はもちろん、あなただけ使用することができTortoiseGitを


ただし、TortoiseSvnシェル拡張には単一のファイルの履歴を表示するコマンドが含まれていますが、TortoiseGitには含まれていません。
ニュートリノ



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.