このレッスンでは、Gitについて学んでいきます。Gitとは何かを理解し、実際にGitコマンドなどを使いながら、Gitの使い方を覚えましょう。
Gitを使用するメリットは、間違っても戻れるという点です。コードがぐちゃぐちゃになったからやり直し!ということもできるんですよ!
Gitとは、開発を便利にしてくれるソフトウェアのことです。アプリのソースコードなどを記録して管理する事が出来るので、コードがぐちゃぐちゃになってしまっても元に戻すことができるという特徴があります。
また、ブランチという作業履歴を分岐させて記録できるという機能もあり、アプリの機能別に作業履歴を分岐させて開発を行っていくことが出来ます。
作業履歴は、リポジトリに記録します。リポジトリとは、ファイルやディレクトリの状態を記録する場所のようなものです。
では、実際にリポジトリを作成してみましょう。前章のサーバーの停止から続けて作業をされている方はそのままのターミナルで大丈夫です。
新たに本章に取り組まれている方は、【newsable】フォルダへ移動してください。フォルダを移動するコマンドは【$ cd フォルダ名】でしたよね。【$ cd newsable】のコマンドでnewsableフォルダへ移動しましょう。
$ git config --global user.name "user name" #user nameは任意の文字列
$ git config --global user.email test@example.com #test@~のアドレスは公開されてしまうものなので注意。
$ git init #リポジトリの初期化
以下画像のような表示がでていればリポジトリの作成に成功しています。
ここからは実際にリポジトリに記録しましょう。まず以下のように3つのステージがあることを理解してください。「ワークツリー」「インデックス」「リポジトリ」の3つです。かんたんに言うと
ワークツリー => いつも作業しているフォルダのこと
インデックス => コミットの前に一時的にフォルダ・ファイルを置く場所
リポジトリ => 作業履歴を保存しておく場所
インデックスファイルはリポジトリを作成する【$ git init】コマンドを実行すると自動的に作成されます。
では、先ほど作成したリポジトリに、アプリの作業履歴を実際に記録してみましょう。
以下コマンドをターミナルで実行してください。
$ git add . #インデックスに追加
ターミナルはなんの変化もないように見えます。このような状態になると「今インデックスに追加したはずだけど、ちゃんと追加できているんだろうか?」と不安になりますよね。
そんなときは【$ git status】コマンドを使いましょう。先ほど、インデックスに作業履歴を追加というコマンドを実行しました。【git status】で確認してみましょう。
new fileと何やら新しいファイルがたくさん表示されています。どうやらnew fileとして作業歴の追加は成功しているようです。それでは次のコマンドにうつりましょう。
以下コマンド実行してください。“First commit”というのは、コミットメッセージと呼ばれるもので、履歴の内容を表すものです。
$ git commit -m "First commit" #コミット
もう一度先ほどの図を思い出してください。作業履歴を残す場合、【$ git add .】コマンドで「今から履歴を追加しますよ」と宣言し、実際に変更や追加をした内容をリポジトリに記憶させるために【$ git commit】コマンドで「この内容を記録しておいてね」と指示をだすというイメージです。
今のところ特に、追記や変更をした内容はありませんのでターミナルはこのようになります。
Gitを使用するメリットは、間違っても戻れるという点です。実際に戻れるのかどうか、1度コチラのREADMEファイルを削除して、試してみます。
以下は、ファイル削除のためのコマンドです。実行して、READMEファイルを削除してみましょう。
$ rm -f README.md #ファイル削除
$ git status
コマンドを実行しても、READMEファイルは残っています。操作は失敗したのでしょうか。【$ git status】で確認してみましょう。
deleted: README.mdとありますね。どうやらファイルの削除は成功しているようです。では、ファイル削除のコマンドの練習の為に、前回の課題で作成したzooloppaファイルも削除してみましょう。
以下コマンドを実行して下さい。
$ git checkout -f #元に戻す
コマンドを実行し【git status】で確認すると、”On branch master nothing to commit, working tree clean”との表示があります。
この”On branch master nothing to commit, working tree clean”とは、「今開いている(追跡している)フォルダの中で変更のあるものはありませんよ」、つまり「初期状態から何も変わりはありませんよ=READMEファイルは消えていませんよ」という意味です。
今後削除したファイルをもとに戻したい時などに、【$ git checkout -f】コマンドが成功しているかどうか、この文言で確かめることができます。
コードがぐちゃぐちゃになったからやり直したいという時も、先ほどと同じ【$ git checkout -f】コマンドでOKです。Gemfileに記述を追加して、ためしてみましょう。
newsableのフォルダをクリックするとわかるのですが、たくさんのファイル、フォルダがありますよね。この中から目的の「Gemfile」を見つける方法があります。
Windowsの場合はCTRL + e、Macの場合はcontrol + eのショートカットキーでファイル・フォルダの検索窓が登場します。ここに「Gemfile」と打ち込むと簡単に目的のファイルを見つけることができます。
開いた「Gemfile」に、以下を追記してください。
3.【$ git checkout -f】コマンドを実行します。
先ほどと同じく以下コマンドを実行します。すると、記述した箇所が元に戻っているはずです。
$ git checkout -f #元に戻す
public/404.htmlと500.htmlの最後を以下のように変更して、元に戻してみましょう。
500.htmlも同様の手順で実行して確認しましょう。
無料ビデオ講座のお知らせ
Skillhub [スキルハブ]では無料の動画講座を多数公開しています。他校だと数万円するような講座が無料で受講できます。