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

PRODUCED BY RECRUIT

第18話 便利なgit tagの使い方!コミットにタグをつけて管理しやすくしよう【連載】マンガでわかるGit ~コマンド編~

f:id:itstaffing:20201106161527j:plain

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

前回の第17話では、すでに消されたリモートリポジトリのブランチを、ローカルリポジトリでも一気に消してくれる「prune(プルーン)」オプションを学びました。

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

今回の第18話では、コミットにタグをつける方法について学びます。このマンガを通して、わかばちゃんと一緒にGitの知識を身につけていきましょう!

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

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

  コミットにタグをつけて管理しやすくする    

f:id:itstaffing:20201106161530j:plain
f:id:itstaffing:20201106161534j:plain

  タグをつけるとどう便利なの?   

コミットにタグをつけると、どのようなメリットがあるのでしょうか?

タグは、特定のコミットに任意の名前をつけることができます。たとえば、ソフトウェアをダウンロードするときに「バージョン1.0.2」や「バージョン2.29.0」など書かれているものを見たことはありませんか?

タグのメリットは、開発中のキリがいいコミット(リリースしたタイミングなど)に、目印をつけておける点です。

実例を見てみましょう。次の画面は GitHub リポジトリの、タグ一覧ページです。

f:id:itstaffing:20201106161537j:plain

これはGit自体を開発しているリポジトリです。

f:id:itstaffing:20201106161540j:plain

よく見ると、タグごとに zipファイルでダウンロードできるようになっていますね!

また、そのタグがどのコミットIDを指し示しているかも書かれています。コミットIDをクリックすると、そのタグがつけられているコミットの詳細ページに飛ぶことができます。

f:id:itstaffing:20190617145541j:plain
タグのイメージがつかめない方は、GitHub上の タグ一覧ページ の中をいろいろとクリックして探検してみるといいぞ。

  git tag コマンドを使ってみよう    

 
■ コミットにタグをつける

今自分がチェックアウトしているコマンドに、任意の名前でタグをつけます。

$ git tag タグ名
 
■ タグをリモートリポジトリに共有する
 
・タグを共有する

リモートリポジトリ「origin」にプッシュします。

$ git push origin タグ名
 
・複数のタグをすべて共有する

存在する複数のタグをまとめてリモートリポジトリ「origin」にすべてプッシュします。

$ git push origin --tags
 
■ タグを一覧表示する

git tag とだけ打つことで、リポジトリに存在するタグを一覧表示できます。

$ git tag
 
■ タグにチェックアウトする

過去にタグをつけたコミットにチェックアウトしたいときはどうすればいいのでしょうか?おすすめなのは、ブランチを新規作成してチェックアウトする方法です。

・チェックアウトと同時にブランチを新規作成
 
$ git checkout -b ブランチ名 タグ名

「ブランチ名」は任意のものを名付けられます。自分がわかりやすい名前を名付けましょう。たとえば、

$ git checkout -b v2test v2

といった具合です。

$ git checkout タグ名

上記でも、チェックアウトは可能です。しかし、これでは detached HEAD といって、ブランチがない状態でポインタがコミットIDを指している状態になってしまい、良くありません(※)。チェックアウトと同時にブランチを新規作成することをおすすめします。

※具体的に何が良くないかというと、detached HEADの状態でコミットを積んでから別のブランチにチェックアウトすると、ブランチがない状態で積まれたコミットは普通の方法では参照できなくなってしまいます。detached HEADについては次回19話で詳しく解説します
 
■ タグを削除する

過去につけたタグをわざわざ削除するケースは少ないと思いますが、「タグの名前を間違ってつけてしまった」「タグの名前を整理したい」といったときに、タグを削除することもできます。

・ローカルリポジトリのタグを削除する
 
$ git tag -d タグ名
 
・リモートリポジトリのタグを削除する
 
$ git push origin --delete タグ名

  まとめ    

今回は、git tag の使い方について学びました。

・タグをつける
 
$ git tag タグ名
 
・タグを一覧表示する
 
$ git tag
 
・タグを共有する
 
$ git push origin タグ名

Gitにはまだまだたくさんのコマンドがあります。
次回は最終回!「detached HEAD 状態を解決する方法」を学びましょう。

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

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

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