【その1】git をもう一歩使いこなす!便利なオプションを紹介!

ぽんぽこの画像

プログラミング学習者に役立つサイトを目指します! by ぽんぽこ @ponpoko_code

プログラミングスクールの比較・検索 プロぽこ

gitは言わずと知れた超有名かつ便利なコマンドですが、有名なくせに奥が深すぎてなかなか完全に使いこなすのは難しいコマンドの1つです。

この記事ではそのgitをもう一歩使いこなすためのオプションを紹介します。

「普通にaddしてcommitしてpushする事はできるが、それ以外はあんまりわからない…」という方がさらにgitを使いこなせるようになると思います。

※この「普通にaddしてcommitしてpushする事」を紹介している記事は世の中に数多ありますので、ここではあまり触れない事とします。



「git tag」でタグを切る

git はコミットごとにコミットハッシュが自動で付与されます。しかしこれでははっきり言って人間にはどれがどういう意味を持つのかわかりません。

そこでgit にはタグという機能があります。意味をつけたいコミットを指定して「名前」をつける事ができます。使用方法は下記のようになります。

git tag [タグ名]

同じタグ名はそのリポジトリで1つしか存在できません。しかし同じコミットに複数のタグをつける事はできます。

タグを切る

具体的には下記のように使います。

git tag 1.0.0

コメント付きのタグをつける事もできます。

git tag -a [タグ名] -m [コメント]

上記のように何も指定しない場合、今HEADがある位置にタグが付けられますが、コミットハッシュを指定してタグを付ける事ができます。

git tag 1.0.1 96632032e41a360b040db710665770c8e02356d2

タグのプッシュはブランチのプッシュとは少し異なり、「–tags」オプションをつける必要があります。

git push [リモート名] --tags

タグを確認する

このリポジトリに付けられたタグを一覧表示して確認する事ができます。

git tag -l

タグにチェックアウトする

「git checkout」コマンドはブランチを移動する場合に使う基本的なコマンドですが、これを利用して、タグを付けたコミットに移動する事ができます。

タグ自体はコミットに紐付いていますのでタグにチェックアウトした場合、そのコミットまで移動する事になります。

git checkout [タグ名]

タグを削除する

「-d」をつけてタグ名を指定することでタグを削除することができます。タグを削除してもコミットしたファイルの内容などに影響はありません。

タグは特定のコミットに名前をつけるようなことなので、タグを削除したからと言ってコミットした情報が書き換わることはないのです。

git tag -d [タグ名]



「git describe」で直近のタグを探す

「git describe」コマンドを使って上記で紹介したタグを表示する事ができます。

今の自分のHEADがある位置から一番近いタグが表示されます。

git describe

ここで注意すべき事はタグを切った時に「コメント付きタグ」でないと表示されない事です。

普通に「git tag」コマンドでタグを切っていた場合下記のようなエラーが出てしまいます。

fatal: No annotated tags can describe '92958e487a95f7c427613e4df70112055372597f'.
However, there were unannotated tags: try --tags.

このエラー文に書いてあるように「–tags」オプションを付けるとコメント付き出ないタグも表示する事ができます。



「git diff」で変更した差分をみる

「git diff」コマンドを使うことで最後のコミットからの変更差分をみる事ができます。「git add」でHEADにステージされたファイルの変更差分を見る場合は「git diff –cached」とします。

git diff

ファイル名を指定してファイルごとの差分をみる事もできます。

git diff [ファイル名]

「git show」でコミットの詳細をみる

コミットを何度もするとその履歴がたまっていきます。「git log」コマンドでその履歴を見ることができますが何を変更されたのかはわかりません。

そんな時に使えるのが「git show」コマンドです。下記のようにすることで該当のコミットで一体何がどう変更されたのかを見ることができます。

git show [コミットハッシュ]
git show 96632032e41a360b040db710665770c8e02356d2

「git blame」で誰がコミットしたかをみる

「ここバグってやがる!誰が書いたプログラムだ!」となることもあるかと思います。(そういう犯人探しが行われない職場が理想的ですがw)

そんな時に用いるのが「git blame」コマンドです。使い方は下記の通りです。

git blame [ファイル名]

コミット履歴は嘘をつきません。「git blame」を使うとそのファイルのどの行がいつ誰によって変更されたのかがわかってしまいます。

下記の例でいくとこれでコミットハッシュ「92958e48」で変更されたのがわかります。さらにどう変更されたのかを調べたい場合、「git checkout 92958e48」などとしてその履歴に移動し、そこから「git diff」で変更差分を確認できます。

// git blame test.txt
92958e48 (コミットした人 2017-01-09 15:58:54 +0900 1) 9,ppp
92958e48 (コミットした人 2017-01-09 15:58:54 +0900 2) 10,ttt



まとめ

この記事ではgitの基本のさらにほんの少しだけ先の機能を紹介しました。ここに書いたコマンドを覚えるだけでも生産性が段違いだと思います。

奥が深すぎて1つ1つのコマンドを深ぼる余裕はないので、ぜひ自分の手で動かしてみてください。

追記

さらに深く知りたい方はこちらの記事もご覧ください。

【その2】git をさらにもう一歩使いこなす!使えると生産性がぐっと高まる!

2017.03.30

この記事が気に入ったら
いいね!しよう


プログラミングは楽しい!

今人気のプログラミングスクール!

オンライン!安い!チャット&ビデオ通話サポート!最短4週間で未経験からプロを育てるオンライン完結のスクール。最大の魅力は『自分だけのパーソナルメンターがつくこと』です。一人ではなかなか学習を続けられないという人にはぴったりのスクールです。実践的なスキルが身に付きます。テレビでも紹介されました。

サポートが丁寧!『Webスク』は、通学とオンラインの学習を組み合わせ、効率的にスキルを習得することができるスクールです。半年間で即戦力のプログラマー、Webデザイナーを目指します。業界初の「転職保証」も人気です。
『WebCamp』は実戦形式にこだわったプログラムで初心者でも安心して学習を進めることができます。1ヵ月間、集中的に学習することで、スキルの習得が早いのも特徴です。

オンラインでマンツーマン授業!?『CodeCamp』は、現役のエンジニアからマンツーマンのビデオ通話でレッスンを受けることができるプログラミングスクールです。初心者や学習に挫折した経験がある方の【最後の砦】となるでしょう。
1回40分のレッスンで、早朝から深夜まで受講可能です。オンラインなのにマンツーマンレッスン!忙しくて通学の時間が取れない!という方にもオススメです。ぽんぽこは『CodeCamp』のおかげでプログラマーに転職できました!

もっと記事を読むなら下記のボタンをクリック!