web-dev-qa-db-ja.com

Gitを使って特定のファイルへの変更を見る

私はgit diffコマンドを使って変更をチェックできることを知っていますが、私の知る限りではディレクトリベースです。これは、現在のディレクトリにあるすべてのファイルのすべての変更を反映することを意味します。

ある特定のファイルの変更点だけを確認するにはどうすればよいですか。 たとえば、ファイルfile_1.rbfile_2.rb、...、file_N.rbを変更しましたが、ファイルfile_2.rbの変更にのみ関心があります。それなら(コミットする前に)どうやってこれらの変更をチェックするのですか?

367
Mellon

次のようなコマンドを使用してください。

git diff file_2.rb

あなたが違いを得ることができるものの種類に関する完全な情報については git diffドキュメント を参照してください。

通常、git diffは単独で repository 全体のすべての変更を表示します(現在のディレクトリだけではありません)。

511
Greg Hewgill

gitk [filename]を使って変更履歴を見ることができます

73
da Rocha Pires

別の方法( this SO answer で説明されています)は履歴を端末に保存し、ファイル自体の非常に深い記録をあなたに与えるでしょう:

git log --follow -p -- file

これはファイルの全履歴(名前の変更を超えた履歴や各変更の差分を含む)を表示します。

言い換えれば、barという名前のファイルがかつてfooという名前だった場合、git log -p bar(--followオプションなし)はファイルの名前が変更された時点までの履歴のみを表示します。ファイルの歴史はfooとして知られていました。 git log --follow -p barを使用すると、ファイルがfooとして知られていたときのファイルへの変更を含め、ファイルの全履歴が表示されます。

64
AJ Zane

下記のコマンドを使用して、誰がファイルの内容を変更したかを確認できます。

git blame <filename>

14
Vineet

実行できます

git status -s

これは変更されたファイル名を表示し、それから興味のあるファイルパスをコピーすることであなたはgit diffを使って変更を見ることができます

git diff <filepath + filename>
12
Tejas Pawar

あなたも試すことができます

git show <filename>

コミットの場合、 git show はログメッセージとテキスト形式の差分(あなたのファイルとコミットされたバージョンのファイルの間)を表示します。

詳細については git show Documentation を確認してください。

4
LuisBento

特定のファイルの変更に関する詳細のみを一覧表示する

git log --follow file_1.rb

同じファイルに対するさまざまなコミットの違いを列挙する。

git log -p file_1.rb

コミットとそのメッセージのみを一覧表示する

git log --follow --oneline file_1.rb
1

あるいはあなたがあなた自身のguiツールを使いたければ:

git difftool ./filepath

あなたはこの記事に沿ってあなたのguiツールを設定することができます: どのように私は視覚的なdiffプログラムで 'git diff'出力を見ますか?

0
ElLocoCocoLoco

@Greg Hewgillに完全に同意する

また、パスにスペースが含まれている場合は、アポストロフィ'または `を付けて追加してみてください。

git diff 'MyProject /マイフォルダ/マイサブフォルダ/ file_2.rb'

0
MrMins