LoginSignup
1
1

More than 5 years have passed since last update.

git で任意のブランチが未プッシュかどうか検証する

Posted at

git で任意のブランチが未プッシュかどうか検証します。
やり方は複数ありますが、今回は

  • git ls-remote
  • git rev-parse

を利用します

サンプル

remote

※ ls-remote は個別のブランチを取得するオプションがないので取得した値から情報を切り出す必要がある

$ git clone https://github.com/tbpgr/linter-reek
$ cd linter-reek
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/greenkeeper-atom-linter-8.0.0
  remotes/origin/greenkeeper-eslint-3.3.1
  remotes/origin/greenkeeper-eslint-3.4.0
  remotes/origin/greenkeeper-eslint-config-airbnb-base-5.0.3
  remotes/origin/greenkeeper-eslint-plugin-import-1.12.0
  remotes/origin/master
# greenkeeper-atom-linter-8.0.0 の remote sha を調べてみる
$ git ls-remote origin | grep greenkeeper-atom-linter-8.0.0  | cut  -f1
4d6ab932c68d50c912cf3562990d542dd8572bc6

local

$ git checkout -b greenkeeper-atom-linter-8.0.0 -t origin/greenkeeper-atom-linter-8.0.0
$ git rev-parse greenkeeper-atom-linter-8.0.0
4d6ab932c68d50c912cf3562990d542dd8572bc6

# 試しに greenkeeper-atom-linter-8.0.0 ブランチを変更してみる
$ touch hoge;git add hoge;git commit -m "test"
[greenkeeper-atom-linter-8.0.0 40256a6] test
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 hoge

$ git rev-parse greenkeeper-atom-linter-8.0.0
40256a67e5cb4bdb5d46df4aecf36702783fdc9c

# git log で答え合わせ
$ git log -1
commit 40256a67e5cb4bdb5d46df4aecf36702783fdc9c

まとめ

remote で取得した値と local で取得した値を比較することで未pushかどうか判別できます。

関連資料

1
1
0

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
1
1