やりたいこと
現在、ローカルでチェックアウトしているブランチを簡単に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するシチュエーションがあればご教示ください。
参考