【Github】リモートリポジトリにある全てのブランチをローカルへpullする

こんにちは、しきゆらです。

今回は、Githubにあるブランチのすべてをローカルリポジトリへpullしてくる方法を知ったのでメモしておきます。

 

状況

まずは、こんなことをしようと思った経緯をメモしておきます。

先日、メインで利用しているMacbook ProのOSアップグレードをしました。

はい、「High Sierra」から「Mojave」へのアップグレードです。

 

毎回、OSの名前が変わるたびにクリーンインストールしていた私。

今回も例に漏れず、アップグレード後にクリーンインストールしました。

SSDによりPC本体に記録できる容量がHDDに比べて少なくなりましたが、オンラインストレージ等のおかげでほぼ不便なく利用できています。

Mac標準のiCloud、Windowsでも利用しているOneDrive、普段遣いのDropboxと3つを併用しています。

基本的なファイルは、これらの場所においているため、クライアントソフトをインストールすればすぐに利用できるようになります。

 

開発しているプログラムも、殆どはGit/Githubで管理しています。

そこで、クリーンインストールした後homebrewでGitをインストール。

あとはGithubからリポジトリをcloneしてくれば全て解決。

・・・と思ったら、デフォルトでクローンしてくれるのはmasterブランチだけなんですね。

知らなかった。

 

・・・長々と書いてきましたが、ここまでが前置き。

Githubにあるmaster以外のブランチを全てローカルリポジトリにpullしたい。

ということで本編です。

 

解決方法

本編のほうが短いです。

なんと3回コマンドを打つだけなので。

 

調べてみると、こんな記事が。

全部ランチをリモートリポジトリからpullする – Qiita

https://qiita.com/muraikenta/items/e590a380191971f9c4c3

まさにほしい情報でした。

古い記事でしたが、この手順で完了できました。

$ for remote in `git branch -r`; do git branch --track ${remote#origin/} $remote; done
$ git fetch --all
$ git pull --all

何をやっているのかよくわかりません。

git branch -rでリモートのブランチを取得し、--trackの部分はわかりませんが、取得したブランチ全てを指定しているのかな?

そして、fetchとpullして取得。

・・・わからん。

 

まとめ

調べてみると、やはり似たようなことをしたい人がいて一安心。

GitやGithubはそれなりに使っていましたが、未だによくわからない部分が多いです。

特に、pullとかcloneとか。

プルリクエストもいまいちわかっていません。

まぁ、基本的に1人で使うことが多いので使う部分が限られるのですが・・・。

 

では、前置きが本編の記事でした。

今回はここまで。

おわり