git logは編集履歴を見るためだけで、ざっくり使っていたので
まとめて見ました。ProGitの焼き増し的な内容です。
git log --oneline
履歴をSHA-1の短縮表記とコミットコメントのみを表示します。
短縮表記は4桁より大きく、一意であることがわかればgit diffなどの引数に使えるのが便利です。
(master)$ git log --oneline menu.txt
c59f742 チキンカレーを追加
6a045a6 オムライスを追加
cb471ec 烏龍茶を追加
c340204 オレンジジュースを追加
git log --graph
履歴を樹形図で表示します。
樹形図で見るときは詳細情報までは不要なので
--onelineとの併用がおすすめです。
(master)$ git log --oneline --graph menu.txt
* 6965b23 merge dessert
|\
| * 8219893 チョコレートケーキを追加
| * 5f7da4c バニラアイスを追加
* | eab4f1b チーズカレーを追加
|/
* c59f742 チキンカレーを追加
* 6a045a6 オムライスを追加
* cb471ec 烏龍茶を追加
* c340204 オレンジジュースを追加
* ec4ebbd init
ダブルドット
2つのブランチ間でどのコミットがマージされてないか確認する時に便利です。以下の例ではdessertには存在するが、masterには存在しないコミットを表示します。
(master)$ git log master..dessert --oneline menu.txt
8219893 チョコレートケーキを追加
5f7da4c バニラアイスを追加
^
3ブランチ間以上の差分コミットを探すことができます。
以下の例ではsalad か dessertには存在するが、masterには存在しないコミットを表示しています。--notでも同様のことができます。
(master)$ git log salad dessert ^master --oneline menu.txt
6fb5f0b シーザーサラダを追加
(master)$ git log salad dessert --not master --oneline menu.txt
6fb5f0b シーザーサラダを追加
トリプルドット
トリプルドットは2ブランチ間の共通するコミットは除いて表示してくれます。
--left-rightとの併用がおすすめです。
このオプションが示す右と左はコマンドの記述順序によって入れ替わります。
以下の例では
> が master
< が saladに所属するコミットです。
(master)$ git log salad...master --oneline --left-right menu.txt
> 16f5231 チキンナゲットを追加 (右
< 6fb5f0b シーザーサラダを追加 (左