こんにちは、松本です。
アクアリングに入ってから、もうすぐ1年が経ちます。
早いですね...
普段仕事で、たくさんのファイルをチームで編集しています。
そこで今回は、日々の仕事をする中で、
チーム(複数人)作業には不可欠だと実感した
「バージョン管理システム」について書いていこうと思います。
「バージョン管理システムってなんだ、何の役に立つんだ」という方に読んでもらえると嬉しいです!
バージョン管理システムって何?
バージョン管理システム(VCS:Version Control System)は、
「誰がいつ、どのファイルの何を変更したか」を管理、
つまりファイルのバージョン管理をするシステムのことです。
バージョン管理の大きな利点
大きな利点は、以下の2つです。
「ファイルの最新状態を把握できる」
「状態を巻き戻せる」
これらの利点を分かりやすくするために、
仮にバージョン管理されていなかったらどうなるかを説明します。
バージョン管理されていないと
バージョン管理がされないプロジェクトには、以下のような危険があります。
最新バージョンが分かりづらい
どのプロジェクトにも、ファイルが大量に存在します。
一般的にアクアリングでは、プロジェクトごとに
関係するファイルを1つのフォルダにまとめて共有の場所に保管します。
プロジェクトに関わる複数のメンバーが
共有の場所にあるファイルに対して更新や修正をするとなると、
「誰が、いつ、どのファイルを、どう変更したのか」の全てを
全員が把握するのは不可能に近いです。
また、「誰かが誤って上書きし、ほかのメンバーの変更を消してしまう」
というような問題が発生する恐れがあります。
状態を巻き戻せない
複数人で同時に作業をすると、変更箇所やタイミングはかなり複雑になります。
ある程度変更が進んだあとで、「やっぱり3日前の▲▲の状態のほうがよかったかも」
と思うことがあったとします。
3日間で変更した量が少なければいいですが、
大量に変更を加えていると、完全にその状態に戻すのは非常に困難です。
また、誤ってファイルの削除してしまったとき、それを戻す術がありません。
これらの問題を解決できるのが、バージョン管理システム
バージョン管理の利点をもう一度おさらいしますが、
「ファイルの最新状態を把握できる」「状態を巻き戻せる」
です。
そう、チームでのファイル作業には不可欠なんです!
僕はこれを仕事をする中で真に感じました...
(実際に、「○○の時の状態に戻したい」ということがしばしばあります)
もちろん、チームでなくひとりの作業でも、
バージョン管理システムを導入することでかなり作業効率が上がると思います。
代表的なバージョン管理システム、「Git / ギット」
バージョン管理システムにはいくつか種類があり、
その中でも複数人での作業には「分散管理方式」
と呼ばれるものが適しています。
「Git」や「Mercurial」が代表的です。
アクアリングでは、Gitを取り入れています。
Gitには用語や操作、機能がたくさんあり、
今回はそこについて書くのは辞めておきます。
もし詳しく知りたい方がいれば、こちらに分かりやすくまとめられているので、
ぜひ読んでみてください!
サルでもわかるGit入門
便利ツール
また、黒い画面でコマンド打って...みたいなことをしたくない方に
Gitを視覚的に操作できるツールを使うことをオススメします!
『Git GUI』とかで検索すると、様々なツールが出てきます!
アクアリングでは社員の多くが、SourceTree というソフトを使っています。
SourceTreeは、Gitクライアントツールの中では一番有名かもしれません。
個人的には最近、Sublime Merge というソフトを使おうとしています(UIが好みという理由で)。
みなさんもぜひお好みのツールを見つけて、Gitを活用してみてください!
それでは。