派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

第17話 ローカルリポジトリに残ってしまうリモート追跡ブランチを一気に削除する prune オプション【連載】マンガでわかるGit ~コマンド編~

f:id:itstaffing:20201009104923j:plain

Webサービスやアプリ開発の現場では必須のバージョン管理システム「Git(ギット)」。Gitは、専用のソフトを使えばクリックで直感的に操作することもできますが、いざというときにコマンドが使えると便利です。

前回の第16話では、複数のGitアカウントを使い分ける方法について学びました。

・メインで使うアカウントを設定する(グローバル設定)

$ git config --global user.name "wakaba"
$ git config --global user.email. "wakaba@example.com"

・サブで使うアカウントを設定する(リポジトリごとの設定)

$ git config user.name "wakaba2"
$ git config user.email "wakaba2@example.com"

今回の第17話では、すでに消されたリモートリポジトリのブランチを、ローカルリポジトリでも一気に消してくれる「prune(プルーン)」オプションについて学びます。このマンガを通して、わかばちゃんと一緒にGitの知識を身につけていきましょう!

【筆者】湊川 あいさん
【筆者】湊川 あいさん
フリーランスのWebデザイナー・漫画家・イラストレーター。マンガと図解で、技術をわかりやすく伝えることが好き。著書『わかばちゃんと学ぶ Git使い方入門』『わかばちゃんと学ぶ Googleアナリティクス』『わかばちゃんと学ぶ Webサイト制作の基本』『運用ちゃんと学ぶ システム運用の基本』が発売中のほか、マンガでわかるGit・マンガでわかるDocker・マンガでわかるRuby・マンガでわかるScrapbox・マンガでわかるLINE Clova開発・マンガでわかる衛星データ活用といった分野横断的なコンテンツを展開している。

・Amazon著者ページ
・Twitterアカウント

  すでに消されたリモートリポジトリのブランチを、ローカルリポジトリでも根絶やしにしたい    

f:id:itstaffing:20201009104932j:plain
f:id:itstaffing:20201009104943j:plain

  prune オプションの使い方    

prune オプションの使い方は次のとおりです。 いずれのコマンドでも、すでに消されたブランチをローカルリポジトリに反映できます。

$ git fetch --prune
 
$ git remote prune リポジトリ名

  prune オプションを使ってみる   

例として、わかばちゃんのローカルリポジトリから見たブランチ一覧が次のようになっていたとします。

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/fix_css
  remotes/origin/fix_images
  remotes/origin/master

ここで、エルマスさんが、マージ済みのブランチ fix_css、fix_image を削除して、それぞれリモートリポジトリに削除を反映するためにプッシュしたとします。

$ git branch -d fix_css
$ git push origin :fix_css
 
$ git branch -d fix_image
$ git push origin :fix_image

この状態では、わかばちゃんのローカルリポジトリには削除が反映されていません。ひとつひとつ消すこともできますが、それでは面倒なので、pruneで一掃してしまいましょう。

$ git fetch --prune

もしくは、次のコマンドでも同様に一掃できます。

$ git remote prune origin

出力結果は次のとおりです。リモート追跡ブランチを消していますね。

f:id:itstaffing:20201009104951j:plain

ちゃんと消せたのか、確認してみましょう。

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

見事、リモートリポジトリで消されたブランチをローカルリポジトリでも一気に削除することができました。

  まとめ    

今回は、prune オプションの使い方について学びました。
いずれのコマンドでも、すでに消されたブランチをローカルリポジトリに反映することができます。

$ git fetch --prune
 
$ git remote prune リポジトリ名

Gitにはまだまだたくさんのコマンドがあります。 次回は、コミットにタグをつける方法を学びましょう。

▼登場キャラクター紹介
f:id:itstaffing:20200122103525j:plain

▼わかばちゃんが登場する書籍

▼ これまでの「マンガでわかるGit」