ファイルのバージョン管理って大切ですよね。
バックアップはもちろん、その日その日の進捗を把握する意味でも。
とはいっても、「xxxx_20200426.html」だとか「xxxx_20200427.html」なんてファイル名で管理していくのはとても大変です。
確認する際はそれぞれのファイルを開かないといけないし、なによりフォルダ内がごちゃごちゃしてて非常に見づらくなります。
そんな問題を解決するために、バージョン管理システムがあります。
バージョン管理システムは、対象のフォルダ内に入っているファイルの更新状況をリアルタイムに監視し、更新が完了したものをバージョン管理システム上で履歴として保持させることが出来ます。
その履歴を見れば、いつ誰が何のファイルのどの箇所を修正したかまで正確に把握出来ます。
個人での開発はもちろん、チームでの開発でも重宝される便利なシステムです。
そんなバージョン管理システム、代表的なのはgitとSVN(subversion)です。
これからバージョン管理システムを使っていきたいけど、gitとSVNどっちを覚えればいいの?
どちらの使い方を覚えたほうがいいのか、それぞれのシェア率も踏まえて説明していきます。
目次
git
gitは分散型システム
gitでは開発者のローカルPCに、ローカルリポジトリを作成します。
開発者はこのローカルリポジトリに修正や追加したソースコードをコミット(登録)していき、リモートリポジトリにプッシュ(反映)することでローカルリポジトリとリモートリポジトリの内容を同期させます。
SVN
一方SVNは、中央集中型システム
Subversionでは、サーバーにインストールしたリモートリポジトリのみが、ソースコードのバージョンを管理しています。
開発者はローカルPCよりリモートリポジトリにアクセスし、指定したバージョンのソースコードをチェックアウト(ダウンロード)して開発します。
修正したコードは直接リモートリポジトリへコミット(登録)します。
個人的には、gitはオフライン作業が出来ることが大きい
前述の通り、gitはローカルPCにもリポジトリを作成するため、リモートリポジトリにプッシュするまではそのローカルリポジトリに作業内容をコミットし続けることができます。
svnの場合、リモートリポジトリしか存在しないため、オフラインで作業する際にローカルPCでバージョン管理を行うことができません。
フリーランスの方だと、どこか外で作業することも多いのではないでしょうか?
そこにネット環境がなかった場合、SVNだと少し作業がしづらいです。
私は進捗が少しでもあるとこまめにコミットするので、リビジョンがめちゃくちゃ進むの早いです。
こまめにコミットして進捗を管理したい人は、gitを使うとよいでしょう
シェア率はgitが多いようだが、企業ではSVNを使用している所も現在は多い。
SVNの方がgitよりも登場年が早かったこともあるのか、SVNがCVS(90年代から登場していたバージョン管理システム)の後継であるという背景からか、今でも多くの企業はSVNを使い続けているようです。
gitからSVNへ移行する企業もあるようですが、SVNの機能で別に困っていない所は、そのまま使っているようですね。
実際、自分も以前働いていた会社はSVNを使用していましたが、作業内容的にSVNで十分でした。
まとめ
シェア率ではgitの方が多いですが、結果的にどちらを覚えても損はないと思います。
会社や取引先に応じて使い分けなければいけない時も来るかもしれないので、バージョン管理システムの仕組みだけはしっかりと覚えておきましょう。
どちらかが使えれば、一方の使い方もすんなりと覚えることができます。
ここでは触れていませんが、GitHubももちろん便利なので使いこなせるといいですよ!
最近、プライベートリポジトリが無料で利用出来るようになったので、すごく便利です。
興味のある方はぜひ調べてみてください!
GitHub 公式リンク
https://github.co.jp/
GitHub関連記事