1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

現在チェックアウトしているブランチをリモートからpullしたい

Posted at

やりたいこと

現在、ローカルでチェックアウトしているブランチを簡単にpullして、リモートの最新コミット分を取り込みたい。
しかし、いちいち現在のチェックアウトしているブランチ名を入力する作業が非常にめんどくさい。

そこで、どのブランチにチェックアウトしていても汎用的に使えるpullの呪文(コマンド)を作成して、bashrc(もしくはbash_profile)に保存しておきたい。

そうすれば、自分用の呪文を唱えるだけで、超簡単にリモートとの同期が実現する。

現在チェックアウトしているブランチを取得するコマンド

git rev-parse --abbrev-ref HEAD

これを実行すると、現在チェックアウトしているブランチ名が取得できる。
例えば、いま、developブランチにチェックアウトしているなら、実行結果は以下のようになる。


$ git rev-parse --abbrev-ref HEAD
=> develop

これを応用して、次のように現在のブランチでpullする呪文を作成する。

現在チェックアウトしているブランチをpullするコマンド

git pull origin `git rev-parse --abbrev-ref HEAD`

これを実行すると、リモートブランチから、現在チェックアウトしているブランチと同じものをpullしてきてくれる。
例えば、いま、developブランチにチェックアウトしているなら、実行結果は以下のようになる。

$ git pull origin `git rev-parse --abbrev-ref HEAD`
=>
From github.com:workoocha/[project_name]
 * branch            develop    -> FETCH_HEAD
Updating 5e90262..24ab968
Fast-forward
 app/assets/images/missing.png                             | Bin 12591 -> 10395 bytes
...
(省略)
...
 16 files changed, 328 insertions(+), 204 deletions(-)
 create mode 100644 db/migrate/20191020053448_add_default_column_to_colors.rb

ちゃんとリモートdevelopをpullしてくれたのがわかります。

あとは、これを .bashrc なり .bash_profile なりに登録しておけば、いつでもどこでも簡単にpullすることができます。
ちなみに私は .bash_profile に gpl というエイリアスを作って使用しています。

余談

自分は、リモートにある別名のブランチを、ローカルにpullする機会に出会ったことがないので、gitのデフォルトが同名のブランチをpullする仕様であればいいと思っている。

別名のブランチをpullするシチュエーションがあればご教示ください。

参考

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?