「トピックブランチをばんばん作ってある程度のところで統合ブランチへマージする」
という開発スタイルを行っていたとしましょう。
トピックブランチでの作業中や統合ブランチへマージする前など、
状況確認のためにトピックブランチに対してどれだけ変更が行われているか調べることはよくあります。
コミットした数が大したことないのであれば単に git log
を実行して
最初の数コミット分だけ眺めれば済む話なのですが、
余分なものが表示されると五月蠅いですし、
コミット数が増えてくるとさすがに面倒になってきます。
どうすれば必要な分だけ列挙することができるでしょうか。
<since>..<until>
表記を使います。
例えばトピックブランチの名前が topic、
topic の元となった統合ブランチを master とすると、
以下のコマンドで topic に対する変更点のみを列挙することができます:
$ git log master..topic
このコマンドで列挙されるコミットは
「topicから辿れるコミット全て。ただしmasterから辿れるコミットは除く」
になります。
結果としてtopicがmasterから分岐した後にtopicに対して行われた変更点のみを列挙することができます。
実際には git log
に色々とオプションを付けて実行することになるでしょう。
例えばtopicに対してどれぐらいコミットが行われたか知りたければ以下のコマンドでできます:
$ git log --oneline --reverse master..topic
topicをmasterへマージする前に変更内容をレビューするのであれば以下のコマンドでできます
(-p
を指定すると各コミットでの差分が追加出力されます):
$ git log -p --reverse $master..$topic
git log
には -p
以外にも様々なオプションがあるので一度マニュアルに目を通しておくとよいでしょう-S<string>
)。gitrevisions(7)
にはここで紹介した<since>..<until>
以外にもリビジョンやリビジョンの範囲の指定方法について記述されています。