LoginSignup
23
17

More than 5 years have passed since last update.

gitでリモートのmasterがfeatureブランチから何コミット進んでいるか?

Last updated at Posted at 2019-01-23

TL;DR;

gitでリモートのベースブランチ(masterとする)が今いるブランチから何コミット進んでいるか知りたければ

git fetch; git log --no-merges --oneline ..origin/master | wc -l

と打てば良い。

余談

補足説明

例えば、featureブランチで作業中に、他の人のコミット7個が origin/master にマージされている状態でこのコマンドを打ち込むと、

$> git fetch; git log --no-merges --oneline ..origin/master | wc -l
7

のようにコミット数が表示されます。
※fetchしていないコミットがある場合には数字が出る前にfetchの結果が出力されます。これを捨てることはできますが、重要な情報なので表示した方が良いでしょう。

エイリアス

よく使うなら、こんなエイリアスを登録しておくと便利かもしれません。

[alias]
  mile-to-master = "!f() { git fetch; git log --no-merges --oneline ..origin/master | wc -l; }; f"

あまりいい名前を思い付かなかった…。
関数にするとブランチ名の補完が効かなかったりするので、エイリアス固定にしとくと楽な気がします。

経緯

とあるSlackグループでこんな話が出ました。

gitでローカルでfeatureブランチで作業しているうちにbaseブランチが何コミット進んだかをCLIで数えるお手軽な方法あんのかな

確かに、自分が作業してる間に世間がどれだけ先行したかを知りたいときはあるなー、と思ったので、簡単なワンライナを考えてみました。

git log --no-merges --oneline ..master | wc -l

で、この話題を出した人が現在のリモートと比較するならfetchが要るよね、ということでfetchを加えて、こうなりました。

git fetch; git log --no-merges --oneline ..origin/master | wc -l
23
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
17