はじめに
SubversionからGitにそろそろ移行しようと思っている方も多いと思います。しかし、使い慣れたツールから離れるのは勇気がいります。また移行に見合うメリットも欲しいです。Gitには様々な利点があり人気も上昇中です。Gitには対応ツールやサービスも出揃っています。いまこそGitに足を踏み出すべきでしょう。
この記事では、
- SubversionからGitへの移行を迷っている方
- SubversionとGitのどちらを使おうか迷っている方
のためにSubversionとGitを色々な観点から比較します。ご一読してバージョン管理ツール選びの参考にして下さい。
GitとSubversionの人気動向
上の画像は日本のSubversion(青)とGit(赤)の人気度(Google検索数)を示すグラフです。2011年を境にSubversionとGitの人気が逆転し、Subversionは下火に。一方のGit人気はうなぎのぼりで海外も同様の状況です。
なぜGitは人気なのでしょうか?それはSubversionとGitの設計上の差異にあると考えられます。
SubversionとGitの差異
Subversionは集中型
Subversion公式サイト:http://subversion.apache.org/
Subversionは集中型バージョン管理システムです。存在する1つのリポジトリを全員で共有します。commitは共有リポジトリへの反映を意味します。Subversionは1つのリポジトリに対してCheckoutやcommitを行うので操作がシンプルです。
Gitは分散型
Gitの方は分散型バージョン管理システムです。共有リポジトリの他に、ローカルPC上にローカルリポジトリを作成します。commitはローカルリポジトリに対して行い、そのcommit内容を共有リポジトリに反映させる(push)仕組みです。ローカルリポジトリがあるため、やや複雑です。
SubversionとGitのコマンドにも違いがあります。
SubversionとGitのコマンド比較
コマンド内容 | Subversion | Git |
---|---|---|
リポジトリの複製 | checkout | clone |
コミット | commit | commit |
コミット内容の確認 | cat | show |
現在の状態の確認 | status | status |
変更した差分の確認 | diff | diff |
ログの確認 | log | log |
ファイルの追加 | add | add |
ファイルの移動 | mv | mv |
ファイルの削除 | rm | rm |
ファイルの変更の取消 | revert | checkout / reset | ブランチの作成 | copy | branch |
ブランチの切り替え | switch | checkout |
ブランチのマージ | merge | merge |
タグの作成 | copy | tag |
ローカルの更新 | update | pull / fetch |
リモートへの反映 | commit | push |
GitよりもSubversionの方が優れている点
Subversionは仕組みがシンプル
Subversionは集中型でリポジトリがひとつです。Gitはリモートとローカルリポジトリの両方を意識しなければならず、Subversionよりも操作が複雑です。
リビジョン番号がわかりやすい
commitするとcommitを識別するためのリビジョン番号(ID)が振られます。Subversionは連番で分かりやすいですが、Gitでは分散リポジトリのためIDにハッシュ値が使われ分かり辛いです。
SubversionよりもGitの方が優れている点
Gitはローカルにcommitできる
Gitは分散型でローカルにリポジトリを持つため、共有リポジトリを汚さずにローカル上でcommit出来ます。変更内容を共有リポジトリに反映させるかは任意です。Subversionは「実験的なコードや未完成なコードで共有リポジトリを汚したくない」との声がよく聞かれます。
ブランチとマージが使いやすい
GitのブランチとマージはSubversionに比べ高速かつ手軽に使えます。Gitを活用するポイントはこの2つを使いこなす事です。Git flowやGitHub Flow等の開発フローが参考になります。
Subversionからgitへ移行が難しいならgit svnコマンドを使う
チームで使うSubversionをgitへ移行するのに賛同を得られない場合があります。そのような方はgit svnの利用を検討して下さい。git svnはGitからSubversionを使うためのコマンドです。SubversionをGitに近い感覚で扱え、Gitに移行する際に役立ちます。まずはあなたから使い始め、周りに広げては如何ですか?
まとめ
SubversionからGitに移行する気になりましたか?「移行してみるか!」と思った方は、まずGitの基本的な使い方を覚えましょう。GitはSubversionよりも複雑なため、概念を理解すると分からない事が減ります。合わせて分かり易い入門サイトで勉強するとよいでしょう。しばらく使えばきっとGitから離れられなくなります。あなたはSubversionとGitどちらを使いますか?
本ブログは、Git / Subversion のクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
開発の効率化をしたい!もっと便利なツールを使いたい!そんなお悩みをtracpathで解決!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
1 Comment
[…] 2-3、集中型と分散型の比較 Subversion 対 Git:どちらを使うべきなのか?いろいろな観点から比較してみた バージョン管理システムの比較(という名のポエム) […]