【超初心者向け】Laravelのバージョン管理とファイルの復元をgitでやる方法

LaravelでWebサービスの開発をやっていると、コードがグチャグチャになって元に戻したいとかシステムエラー的なものでファイルが消失して茫然自失、みたいな事態に陥ることがしばしばあります。

今回はそんなトラブルに備えて、Laravelのバージョン管理とファイルの復元をGitでやるための手順を、超初心者向けにご紹介します。

コミットとは

Gitはプログラムのソースコードなどの変更履歴を記録・追跡するためのバージョン管理システムです。

Gitの最も基本的な機能が、commit(コミット)

よくコミットは「セーブ機能」などと言われますが、どちらかというとドラクエの「ぼうけんのしょ」に近い概念の機能です。

通常、Excelファイルなどをセーブする場合は常に最新の情報を上書きしていきますが、コミットは新しい「ぼうけんのしょ」を何個も作っていくことができます。

ドラクエ3のぼうけんのしょは3つまでだけど、Gitのcommitは何個でもOK

このためキリの良いところで随時commit(コミット)しておけば、プログラミングという冒険の途中で「やっちまった的なアクシデント」に見舞われても、何事も無かったように再開できるというわけです。

Laravelでのコミットの流れ

コミットの前に、composerをインストールしLaravelプロジェクトの作成が完了しているものとします。

コミットの手順は以下のとおり。

プロジェクトのディレクトリに移動

まずはプロジェクトのディレクトリに移動しておきます。プロジェクト名は hogeProject であるものとしましょう。

$ cd ~/environment/hogeProject

リポジトリの初期化

いきなり「リポジトリ」という聞き慣れない言葉が出てくると戸惑ってしまう方もいると思いますが、これはファイルやディレクトリの状態を記録する場所のこと。

リポジトリはドラクエでいうところの「ぼうけんのしょ」を保存してくれる王様みたいなもんです。

次のコマンドを実行するとリポジトリが初期化されます。

$ git init

リポジトリにコミット

リポジトリにコミットします。

$ git add .
$ git commit -m "init hoge project"

git addコマンドでコミットするファイルを指定します(ステージするとも言う)。ファイル名の代わりに.を入力すると、プロジェクトの全てのファイルやディレクトリがステージされます。

git commitコマンドでコミットを実行します。-m オプションを付けることで、直後にコミットメッセージ(=ぼうけんのしょの名前)を書くことができます。上の例では "init hoge project" がコミットメッセージです。

Gitで変更をもとに戻す

あなたはプログラミングという冒険の途中で「やっちまった的なアクシデント」に見舞われて、途方に暮れているとします。

やっちまった・・・

そんなときはコミット、すなわち「ぼうけんのしょ」を使って旅の途中からやり直しができます。

過去のコミット履歴を確認

まずは git log コマンドを使ってどのコミットまで戻るか決めます。

次のコマンドを実行することで、変更履歴のリビジョン番号を確認することができます。

$ git log --oneline

表示されたコミットのログの頭の7桁の英数字が、そのコミット固有のリビジョン番号(コミットIDとも言う)になります。

c72b883 (HEAD -> master) fugafuga3
3df6302 fugafuga2
420cb53 fugafuga1
44b8eac init hoge project 

コミット状態まで戻す

ある時点のコミット状態まで戻すには、さきほどのリビジョン番号(コミットID)を使います。

たとえば fugafuga1 まで戻りたいときは、該当する 420cb53を次のコマンドで指定します。

$ git checkout 420cb53 .

これにより、すべてのファイルがfugafuga1 の状態まで戻ります。

特定のファイルだけを元に戻したいときは、

$ git checkout 420cb53 /hoge/hoge.html

のようにファイルパスを指定します。

なお git checkout コマンドで元に戻すと、変更していた状態は消えてしまうので注意して使いましょう。

追加したファイルを消す

さきほど紹介した git checkout コマンドでは、追加されたファイルが無かった状態に戻すことはできません。

ファイルやディレクトリをたくさん作ってワケがわからなくなったら、次のコマンドで元に戻しましょう。

$ git clean -df .

まとめ

今回はLaravelのバージョン管理とファイルの復元をGitでやるための手順を、超初心者向けにご紹介しました。

Gitは奥が深いのでまだまだ便利な機能はありますが、まずは最も基本的なコミットによるバージョン管理を押さえておきましょう。