web-dev-qa-db-ja.com

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

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

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

特定のファイルの履歴レコードを探してから、異なるバージョンを比較するだけです。

120
mrblah

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 whatchanged をpatchオプションとともに使用します。

# 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
147
Christian

あなたが望むように見えます git diff および/または git log 。また、チェックアウト gitk

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

gitk name_of_fileを使用したい

これは、すべてのファイルへの変更を表示する代わりに、コミットごとにファイルに発生した変更の素敵なリストを表示します。起こったことを簡単に追跡できます。

34

また、ncursesベースのすてきなgitリポジトリブラウザに対して tig を使用することもできます。ファイルの履歴を表示するには:

tig path/to/file
30
user217433

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

23
chopper

git log(および 'git log --graph')、gitk(Tcl/Tk、Gitの一部)、QGit(Qt)、tig(ncursesを使用したgitのテキストモードインターフェイスなど)を含む多くのGit履歴ブラウザー)、Giggle(GTK +)、TortoiseGitおよびgit-cheetahはパス制限をサポートします(例:gitk path/to/file)。

11
Jakub Narębski

もちろん、可能な限りTortoiseSVNに近いものが必要な場合は、単に TortoiseGit を使用できます。

5
Jörg W Mittag

git log --all -- path/to/fileは動作するはずです

2
Edson Medina

TortoiseGitは、ファイルの履歴を表示する コマンドラインツール も提供します。 PowerShellを使用する:

C:\Program` Files\TortoiseGit\bin\TortoiseGitProc.exe /command:log /path:"c:\path\to\your\file.txt"
2
brianc

git-diff または git-log

2
vladikoff