範囲のある Git ログを使用して 1つのブランチのコミット履歴を表示する
-
git log
と高度な制限オプションを使用したブランチの Git コミット履歴 -
ダブルドット構文を使用したブランチの Git コミット履歴
<branch1>..<branch2>
-
git log
を使用して、ブランチの Git コミット履歴を表示するために少数の文字を入力するのに便利なショートカット -
現在のブランチのみでコミットを表示するための
log
を使用して、最後のいくつかのコミットのみを表示するための便利なオプション -
キャレットオペレーターとのブランチの Git コミット履歴
^
-
--not
オプションを使用したブランチの Git コミット履歴 - リソース
git log
には、リポジトリ履歴からコミットのサブセットを取得するための多くの制限オプションがあります。ダブルドット構文、キャレット演算子^
、--not
オプション、およびいくつかのショートカットを使用して、範囲で git log
がどのようにブランチのみの git commit
履歴を表示するのに役立つかを示します。
Git は、ユーザーがブランチを管理し、効率的なワークフローを考案できるようにする、この豊富なリビジョンクエリシステムからその力を引き出します。
git log
と高度な制限オプションを使用したブランチの Git コミット履歴
Git リポジトリは、コミット履歴が長くなると大きくなる可能性があります。このような場合、完全な履歴を表示することはあまり役に立ちません。
git log
コマンドは、必要なリポジトリ履歴からコミットのサブセットのみを抽出するための多くの便利なオプションを提供します。
git log [formatting options] [limiting options]
[formatting options]
を使用すると、コミットに関するさまざまな情報を表示できます。[limiting options]
を使用すると、表示するコミットを選択できます。
これらの制限オプションに適切な範囲値を指定すると、現在のブランチで git show
コミットを実行できます。
ダブルドット構文を使用したブランチの Git コミット履歴 <branch1>..<branch2>
二重ドット構文は、branch2
からは到達できるが branch1
からは到達できないコミットを示しています。
master
から新しい experiment_branch
を作成するとします。次に、これらの両方のブランチにコミットしますが、まだマージしません。
ここで experiment_branch
に対して素の git log
を実行してみると、experiment_branch
を作成する前に master
に行ったコミットも含めたすべての履歴が表示されます。
これはあまり役に立たない動作です。一般的なユースケースの 1つは、experiment_branch
でマージされていないコミットのみを表示する場合です。
これを行うには、次のコマンドを使用します。
git log master..experiment_branch
すべてのコミットは experiment_branch
から到達可能ですが、master
からは到達できません(基本的に、実験ブランチ上のすべてのマージされていないコミット)。
逆の場合のブランチの順序を逆にして、experiment_branch
をマージする master
の状態を確認することもできます。
私たちの master
は次のようになります:
私たちが行うとき:
git log experiment_branch..master
実験ブランチを作成した後、master
に新しいコミットのみが表示されます。
git log
を使用して、ブランチの Git コミット履歴を表示するために少数の文字を入力するのに便利なショートカット
ダブルドット構文で 2つのブランチのいずれも提供しない場合、Git はデフォルトで HEAD
に設定します。
これを git checkout
の賢い選択で使用して、git log
コマンドを短くすることができます。
まず、実験ブランチに切り替えます。
git checkout experiment_branch
これで、HEAD
は experiment_branch
を指します。
ここでは、右の分岐オペランドを省略して、短い形式のダブルドット範囲構文を使用します。
git log master..
Git はデフォルトで正しいブランチを現在の HEAD
、つまり experiment_branch
に設定し、上記とマージされていないコミットのみの同じ履歴を取得します。
現在のブランチのみでコミットを表示するための log
を使用して、最後のいくつかのコミットのみを表示するための便利なオプション
私たちの experiment_branch
には、多くのマージされていないコミットがある長い歴史があるかもしれません。
このような場合、最後のいくつかのコミットのみを確認したい場合があります。
git log -2 master..
-2
オプションは、選択した履歴のサブセットからの最後の 2つのコミットのみを表示します。
キャレットオペレーターとのブランチの Git コミット履歴^
キャレット演算子^
は、操作するブランチから到達可能なすべてのコミットを除外します。これを使用して、現在のブランチの履歴のみを表示できます。
git log ^master experiment_branch
--not
オプションを使用したブランチの Git コミット履歴
ブランチ名の前に --not
オプションを使用しても同じ結果を得ることができます。これにより、そのブランチから到達可能なすべてのコミットが除外されます。
git log experiment_branch --not master
同じことを行い、experiment_branch
でマージされていないコミットのみを表示していることがわかります。
リソース
- https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
- https://rakhesh.com/coding/git-view-the-commit-log-of-a-remote-branch/
- https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
- https://stackoverflow.com/questions/14889017/how-to-show-local-branch-history#14889649
- https://stackoverflow.com/questions/16974204/how-to-get-commit-history-for-just-one-branch