私の業界では広く使われているソフトに、バージョン管理ソフトというものがあります。
Subversion , git 等、いろいろなソフトが存在しますが、使っていないというかたも多いのも事実です。
バージョン管理について初めての方を対象に、バージョン管理ソフトのひとつgitを例にお話ししたいと思います。
(なお、今回は導入については行いません。検索エンジンでgit installを調べましょう)
(初めての場合は、TortoiseGit等のGUIアプリの方がお勧めかもしれませんが、今回は一般的にバージョン管理ソフトがどういうものかを説明するにとどめることにします)
バージョン管理ソフトとは
まず、バージョン管理ソフトとは何でしょうか。
できることといえば、概ね次のようなものがあります。
- ファイルを途中経過ごとに保存できる
- 単一のファイルのみならず、フォルダ内の複数のファイルをそれぞれ途中経過ごとに保存できる
- いつでも、どの途中経過の時点にでも、ファイルを巻き戻すことができる
- 保存の履歴は、複数の歴史を持つことができ、歴史を分岐させて別のバージョンのファイルを作成することもできる
ちょっとイメージがつきにくいかもしれません。
具体的にお話しします。
- パワーポイント等で「企画書」をつくるとします
- 文書の先頭に「企画書」と書き、ファイルを保存します。そして途中経過として記録します
- 次に「企画書」を大きな文字にし、ファイルを保存します。そして途中経過として記録します
- その後、他の情報(企画の内容)を作成し、完成しました。ファイルを保存し、「途中経過として」記録します
- 3で行った変更をすべて削除し、別のデザインで作り直し、修正しました。ファイルを保存し、やはり「途中経過として」記録します
ファイルはすべて上書き保存されているため、通常では、1や2や3の状態に戻すことはできません。
必要に応じてファイルのコピーを取っておいたりするでしょうが、いざというときコピーを取り忘れてしまっていたということはよくあることです。
バージョン管理を使っていると、上記の1や2や3の状態に、いつでも、差し戻せます。
gitの場合、checkoutという機能を使って実現します。
さて、この状態から3に戻したくなるということはよくあるでしょう。
作業を進めてみて「ああ、これだったらさっき保存したやつのほうが良かったな」という場合です。
この状態でcheckoutという機能を使って3の状態にすると、あら不思議、フォルダ内にあったファイルは、3の状態に戻るのです。
もちろん、そのとき、4の状態にふたたび戻すことも可能です。
途中経過を記録することをcommit(コミット)と言いますが、commitした地点には、いつでも戻ることが可能です。
企画書を作っていて、試行錯誤しながら、ファイルをいじりまくる時もあるかもしれません。
そんなとき、途中経過ごとにコミットをしておくことで、「失敗を恐れずに」作業を進めていくことができるのです。
そして、ひとつのファイルを複数のバージョンで管理することも可能です。
これを「ブランチ(分岐)を切る」と言います。
ふたたびパワーポイントで企画書を作っていることを例にとりましょう。
完成した汎用の企画書を、A社用にカスタマイズしたいと思います。
- 企画書をカスタマイズする
- 「A」という名前のブランチを作成する
- 先頭のページに「A社」と宛名を書く。途中経過をコミットする
- 企画の内容を微修正する。途中経過としてコミットする
完成しました。
もとのブランチを仮に「master」ブランチと呼びます。大元のブランチです。いわゆる本流ですね。
いま、ブランチはふたつ。ひとつはmasterブランチで、もうひとつはAと名付けたブランチです。
現在は、Aブランチで作業をしています。A社向けのプレゼン資料ができあがったところです。
この状態から、masterブランチをcheckout機能で呼び出すことができます。
そうすると、フォルダの中にあるファイルは、masterブランチのファイル、つまり、先に作っておいた汎用の企画書の状態となるのです。
同時並行的に「B社」への企画書を作成することも可能です。
Bという名前のブランチを「切り(作成し)」そしてB社向けに、宛名だけを変えてコミットをしたとします。
今、完成品は3つになりました。
ひとつは、汎用バージョン(masterブランチのファイル)、他にA社向けのバージョン、B社向けのバージョンとあります。
「ブランチを切り替える(checkout)」するだけで、いつでも他の状態にすることができます。
さて、今回はバージョン管理ソフトの、あるひとつの側面について説明しました。
これを読んで「便利そうだな」と思った方は、すぐにでも導入すると良いでしょう。
その先にはここに書いてない、もっと素晴らしい機能が控えています。
とくにHTMLやCSSやJavaScriptのファイルのように「テキスト形式」で書かれている文書には、多大な威力を発揮します。
いずれも「失敗を恐れずに、無駄なことをしない」ために作られています。
過去に作ったファイルを間違って消してしまったり、パソコンがフリーズしたり、他人のPCを借りて作業をする時などに、威力を発揮します。
備えあれば憂い無し、なのです。
いずれまた。