Gitバージョン管理を使用してファイルの変更履歴を表示する

StackOverflow https://stackoverflow.com/questions/278192

  •  07-07-2019
  •  | 
  •  

質問

Gitで個々のファイルの変更履歴を表示するにはどうすればよいですか?

私は次のことを知っています:

git log -- [filename]

ファイルのコミット履歴が表示されますが、各ファイル変更の内容を取得するにはどうすればよいですか

私はMS SourceSafeから移行しようとしていますが、以前は単純なright-click=> <!>#8594でした。 show history

役に立ちましたか?

解決

このために使用します:

gitk [filename]

またはファイル名を変更して過去の名前を変更する

gitk --follow [filename]

他のヒント

使用できます

git log -p filename

gitに各ログエントリのパッチを生成させる。

参照

git help log

その他のオプション-実際には多くの素晴らしいことができます:)特定のコミットの差分を取得するには、

git show HEAD 

または識別子によるその他のリビジョン。または使用

gitk

変更を視覚的に閲覧します。

git log --follow -p -- path-to-file

これにより、ファイルの全体履歴が表示されます(名前の変更を超えた履歴や各変更の差分を含む)。

つまり、barという名前のファイルがかつてfooという名前だった場合、git log -p bar--followオプションなし)は、名前が変更された時点までのファイルの履歴のみを表示します- git log --follow -p barとして知られているファイルの履歴を表示しません。 -pを使用すると、ファイルが<=>であったときの変更を含め、ファイルの履歴全体が表示されます。 <=>オプションは、変更ごとに差分が含まれるようにします。

テキストベースのままにする場合は、 tig

クイックインストール:

  • apt-get # apt-get install tig
  • Homebrew(OS X)$ brew install tig

これを使用して、単一ファイルの履歴を表示します:tig [filename]
または、詳細なレポ履歴を参照します:tig

gitkに似ていますが、テキストベースです。ターミナルで色をサポート!

git whatchanged -p filename も同等ですこの場合、 git log -p filename へ。

git blame filename 。これにより、ファイルのすべての行について、短いコミットID、作成者、タイムスタンプ、および完全なコード行が出力されます。 これは、バグを発見し、それがいつ導入されたのか(または誰のせいなのか)を知りたい場合に非常に便利です。

SourceTreeユーザー

SourceTreeを使用してリポジトリを視覚化する場合(無料で非常に優れています)、ファイルを右クリックして[選択したログを記録

]を選択できます。

ここに画像の説明を入力

表示(下)は、gitkおよびリストされている他のほとんどのオプションよりもはるかに使いやすいです。残念ながら(現時点では)コマンドライン<!>#8212からこのビューを起動する簡単な方法はありません。 SourceTreeのCLIは現在リポジトリを開くだけです。

ここに画像の説明を入力

ファイルの各行を最後に変更したリビジョンと作成者を表示するには:

git blame filename

または強力な非難GUIを使用する場合:

git gui blame filename

他の回答を読んで少し遊んだ後の要約:

通常のコマンドラインコマンドは

です
git log --follow --all -p dir/file.c

ただし、gitk(gui)またはtig(text-ui)のいずれかを使用して、人間が読める形式で表示することもできます。

gitk --follow --all -p dir/file.c

tig --follow --all -p dir/file.c

debian / ubuntuでは、これらの素敵なツールのインストールコマンドは予想どおりです:

sudo apt-get install gitk tig

そして、私は現在使用しています:

alias gdf='gitk --follow --all -p'

サブディレクトリgdf dir内のすべてのフォーカスされた履歴を取得するためにdirと入力するだけです。

このエイリアスを.gitconfigに追加します:

[alias]
    lg = log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\n--abbrev-commit --date=relative

次のようなコマンドを使用します:

> git lg
> git lg -- filename

出力は、gitkの出力とほぼ同じに見えます。お楽しみください。

最近tigを発見し、非常に有用であることがわかりました。 AまたはBを実行したい場合がありますが、ほとんどの場合、それはかなりきれいです。

あなたの場合、tig <filename>が探しているものかもしれません。

http://jonas.nitro.dk/tig/

この正確な目的のために git-playback を作成しました

pip install git-playback
git playback [filename]

これには、コマンドラインに結果を表示する(git log -pなど)と同時に、矢印キー(gitkなど)を使用して各コミットをステップスルーできるという利点があります。

または:

gitx -- <path/to/filename>

gitx

を使用している場合

ファイルの履歴全体を表示する場合は、他のすべてのブランチの含むを使用します:

gitk --all <filename>

優れた Git拡張機能を使用すると、ファイルの履歴のある時点に移動できます。まだ存在している場合(削除されている場合はHEADに移動します)、File treeタブに切り替え、ファイルを右クリックしてFile historyを選択します。

デフォルトでは、ファイルの名前を変更し、Blameタブで特定のリビジョンの名前を確認できます。

削除リビジョンをクリックしたときにfatal: Not a valid object nameタブにViewを表示するなど、いくつかの小さな落とし穴がありますが、私はそれに耐えることができます。 :-)

Repositoryメニューでgit GUI(Windows)を使用している場合、<!> quot; Visualize master's History <!> quot;を使用できます。上のペインでコミットを、右下でファイルをハイライトすると、左下にそのコミットの差分が表示されます。

SmartGit

  1. メニューで変更されていないファイルの表示を有効にします:変更されていないファイルの表示/表示
  2. ファイルを右クリックして「ログ」を選択するか、「Ctrl-L」を押します

ファイルの特定の部分を変更したコミットの一覧を表示することもできます(Git 1.8.4で実装されています)。

返される結果は、この特定の部分を変更したコミットのリストです。コマンド:

git log --pretty=short -u -L <upperLimit>,<lowerLimit>:<path_to_filename>

upperLimitはstart_line_numberで、lowerLimitはファイルのending_line_numberです。

詳細は https://www.techpurohit.com/list-いくつかの便利なgitコマンド

このスレッドではなく、私が探していた答えは、コミットのためにステージングしたファイルの変更を確認することです。すなわち

git diff --cached

TortoiseGitを使用する場合は、ファイルを右クリックしてTortoiseGit --> Show Logを実行できるはずです。表示されるウィンドウで、次のことを確認します。

  • 'Show Whole Project'オプションはチェックされません。

  • 'All Branches'オプションがチェックされています。

git diff -U <filename>統合された差分を提供します。

赤と緑に色付けする必要があります。そうでない場合は、最初にgit config color.ui autoを実行します。

gitプラグインでEclipseを使用している場合、履歴との優れた比較ビューがあります。ファイルを右クリックして、<!> quot; compare with <!> quot; = <!> gt;を選択します。 <!> quot; history <!> quot;

vscodeは GitLens で使用できます。これは非常に強力なツールです。 GitLensをインストールしたら、GitLensタブに移動し、FILE HISTORYを選択して参照できます。

ここに画像の説明を入力してください

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top