コレで使える! はじめてのgit (その2)

TechAcademyでメンターをしています

シリーズの内容はこちらから。

さて、前回までは、初心者のひっかかりやすい言葉をさらっとご紹介していきました。今回はそれらを使って ひとりgit してみるというところをゴールにしてみたいと思います。

この記事の目次

今回やりたい事の流れ

今回の流れとしては、ひとりgitなので、自分のマシンの中でバージョン管理をすることが目標です。 バックアップにならないという話は後回し です。まずはgitさんと仲良くならないと。

ということで、やることは以下の流れです。

1. ローカルにリポジトリを作成
2. ファイルを作成・保存
3. ファイルをステージング
4. コミット
5. ファイルを変更・保存
6. コミット

シンプルですね。

ステージングという新しい言葉が出てきましたので紹介しておきます。

ステージング
一般的には「ステージする」と表現されることも多いですが、「eatする」って言っているみたいで凄く違和感を感じる私はこの表現を使う事にしています。
細かいことを言い出すとアレなのですが、要はステージに乗せるということです。gitの管理下に置かれるステージに載せてあげる作業ですね。
ファイルを作っただけではステージに乗っていませんし、ステージに乗っていないとコミットできません。ですので、 ファイルを作成したら、毎回ステージングしましょう。保存し直しても既にステージにいるので保存する度にやる作業ではないです。

ということで、何のことは無い、普通にファイルを作るところから始めましょう。

ローカルにリポジトリを作成

コレだけみると難しいことをするかのように見えますが、何のことは無い、さらっとした作業です。
しかしながら、ターミナルを利用するので、そのあたりで拒否反応が出る人も居るかもしれませんね。

ターミナルでコマンドを実行する時に注意するのは以下の2点!

- 実行する場所が正しいか確認する!
- コマンドは一字一句スペースも含めて間違いなく入力する!

というシンプルな2点!
gitに直結しないコマンドの解説などは追々別の記事にしようと思いますが、コマンドを扱うOSって、 人は間違えない という思想の元に出来ていますので、確認とかありません。気をつけましょう。

さて、手順に戻りまして、まずは、適当なフォルダを用意しましょう。勿論自分のマシンの中で大丈夫です。ここでは特別なことを考える必要はありません。普段ファイルをしまうために用意するフォルダの感覚で充分です。

ということで早速コマンドを打ちます。
まずは cd コマンドを利用して、作ったディレクトリまで行きましょう。あ、ディレクトリとは、フォルダと同じ意味合いです。
作ったディレクトリにたどり着いたら、以下のコマンドを実行するだけ!

$ git init

ちなみに $ は打ち込む必要ありません。

コレだけで完了! まぁ簡単! あっと言う間にローカルリポジトリが出来ました!
これにて、今作ったディレクトリをgitの管理下に置くことが出来ました。

ファイルを作成・保存

ここは何のことは無く、ターミナルから離れて普通にファイルを作れば良いのです。
好きなようにファイルを作り、保存しましょう。 保存されていないとコミット出来ません からね。気をつけて。

ファイルをステージングする

さぁ、ファイルを作り続けて、「一旦ここまで!」という区切りがつきました。そうしたら、つぎにやることはステージングです。

リポジトリを作ったときと同じように、 cd コマンドを利用して対象のディレクトリまで移動します。移動できたら、場所を確認した上で、以下のコマンドを実行しましょう!

$ git add .

大丈夫ですか? 最後は . (ドット)ですよ? これで、 今居るディレクトリの中にある全てがステージングされました 。基本的には毎回コレで事足りるはずなのですが、一応解説しておくと、元々は以下のようなコマンドです。

$ git add <ステージングしたいファイル名>

< > で囲んだ部分は、オプションの意味合いを示すために付けていますので、実際に打ち込む物ではありません。
つまり、 add の後ろにファイル名を書いてあげれば、そのファイルがステージングされます。

だけど、めんどい。
全部まとめてステージングしたいって事が殆どだと思います。そんな貴方に . さん! このドットは「今居るディレクトリにある全てのファイル・ディレクトリ」を示してくれるので、ぜーんぶまるっとステージングしてくれます。まぁ、便利!

もし、エラーが出たら、エラーの内容でGoogleさんに探してもらいましょう。

うまくステージングできているか確認したければ、以下のコマンドの実行結果を確認します。

$ git status

結果が英語で出てきますが、ここは読めばわかるはず。難しい単語は調べましょう。gitを使う限り(というかプログラムに触れていく限り)英語は切っても切り離せないです…。頑張ろう。

いずれにしても、このコマンドが通ればステージングは無事に終了です。先に進みましょう。

はじめてコミットする

さぁ、ステージに乗ったので、コミットです。
コミットは「ハイここまででひと区切り(バージョン)です」ってしてあげることでしたね。バージョンの区切りを付けます。

コマンドは以下の通り!

$ git commit -m 'first commit.'

シンプル!

でもなんだか長いですね。意味合いを確認していきましょう。
commit はコミットの命令だってわかるけど、新しく登場した -m って何よっていう方が多いと思います。コレはいわゆる コマンドのオプション という物で、 「この後に書いてある内容をコミットメッセージとしますよー」という指示 です。なのでその後に書いてある 'first commit.' という部分が続くんですね。今回の場合はクォートの内側の first commit. という文章がコミットメッセージとなります。

コミットメッセージとは、「このコミットでは何をしたよ。何が変わったよ。」ということをメモしておくものです。だって、ただ順番にバージョンが並んでるだけじゃ何が起こってるかわからないでしょ?
もちろん、ここのメッセージを変えれば、違うメッセージで保存されます。
シングルクォートであることに特段意味は無く、ダブルクォーテーションでもいいのですが、文字のエスケープという問題があるので、なれるまではシングルクォートを使うと良いでしょう。

-m 以降を書かないと、コミットメッセージを書けと言わんばかりに、ターミナル上に文書エディタが表示されます。その使い方を勉強するのもいいですが、今はgitに集中したいので -m を使う方式で行きます。

というわけでコマンドの意味使い方としては以下の通り。

$ git commit -m '<ここにコミットメッセージ>'

ちゃんと実行されていれば、 git status コマンドを実行したときに、 Nothing to commit. というメッセージが出るはずです。

ファイルを変更・保存する

さぁ、一旦コミットできました、今の状態はファイルの中身が消えてしまったとしても復元できます。安心してファイルの編集を進めましょう。

今まで通りひたすら編集して保存すればいいのです。
もし、新しくファイルを作ったのなら、ステージングし直すのを忘れずに。
先程のステージングのコマンドで大丈夫。既にステージングされている物は再ステージングなどされませんので、安心して . さんを活用しましょう。

またコミットする

さて、またいいところまで来ましたか?
ではコミットです! コマンドは大丈夫ですか? cd コマンドで移動してから実行ですよ。

$ git commit -m '<ここにコミットメッセージ>'

今回は好きにコミットメッセージを入れてみると良いでしょう。いかがですか? コミット出来ましたか?

必要に応じて git status で状態を確認しましょうね。

後は繰り返すだけ!

何のことはない、後は繰り返しです!
もう大丈夫ですね? ファイルを変更して保存して、コミット。ファイルを作って保存したらステージング。

コレだけで、バージョン管理ができる様になりました!素敵!


さて、いかがでしょうか?
あっと言う間にひとりgitできる様になりましたね。今は自分のマシンの中だけでやっていますので、次回は、リモートリポジトリを使って、外部にgitを連携させるというために必要な外部サーバの準備をしてみましょう。

ということで、次回はGithubのアカウントとリポジトリ作成の部分をまずは紹介することにします。

私がメンターを務めているTechAcademyでは「Githubトレーニングコース」もありますので、良かったら下のバナーから辿ってみて下さい。(私の担当コースではありません。)
他のコースでもgitに触れているコースはたくさんありますので、気になるものがあれば、是非。

この記事を書いた人

ささぴよ

TechAcademy公認エバンジェリスト
株式会社シノビアシ 取締役副社長 兼 CTO

中学時代に買ってもらったPerforma 550以降ずっとアップル製品漬けの人生。iPhoneは日本上陸時から愛用し続けている。
「誰かが作っているなら、自分でも作れるはず!」という安易な発想からHP制作などを始め、ネットの世界から情報を集めてひたすらいろんなことをやってみるようになった。

TechAcademyでは、Webデザイン / WordPress / UI/UX / Node.js / OSS活動 / デザイン実践ポートフォリオ / フリーランスサポートのコース を担当するメンター。

よく歌って踊っている。