サイトアイコン プログラマー(PG)・システムエンジニア(SE)になるための入門講座

GitとSVNの違いとは?IT初心者向けに仕組み・使い分け・現場での確認方法を解説

GitとSVNの違いとは?IT初心者向けに仕組み・使い分け・現場での確認方法を解説

結論として、Gitは各PCに履歴を持つ「分散型」のバージョン管理システム、SVNはサーバーで履歴を一元管理する「集中型」のバージョン管理システムです。

どちらもソースコードや設定ファイルの変更履歴を管理するために使われますが、保存方式、操作方法、ブランチの扱いやすさ、障害時の影響などが異なります。

IT業務では「どちらが優れているか」だけで判断するのではなく、既存環境やファイルの種類、運用ルールに合わせて使い分けることが大切です。

  1. GitとSVNの違いを一覧で確認
  2. Gitとは
    1. Gitでよく使う用語
  3. SVNとは
    1. SVNでよく使う用語
  4. 最大の違いは分散型と集中型
    1. Gitは各PCに履歴を持つ
    2. SVNは中央サーバーで履歴を管理する
  5. Gitのコミットとプッシュは別の操作
  6. ブランチの違い
  7. どのような場面で使われるか
    1. Gitが使われやすい場面
    2. SVNが使われやすい場面
  8. GitとSVNはどちらを選ぶべきか
  9. IT現場でよくあるトラブル例
    1. Gitでコミットしたのに変更が共有されない
    2. Gitでプッシュが拒否される
    3. SVNでコミットできない
    4. 競合が発生する
  10. 障害発生時の確認する順番
  11. 原因の切り分け
  12. Gitをコマンドで確認する方法
    1. 現在の変更状態を確認する
    2. 変更履歴を確認する
    3. リモートリポジトリを確認する
    4. 変更差分を確認する
    5. 現在のブランチを確認する
  13. SVNをコマンドで確認する方法
    1. 変更状態を確認する
    2. 作業コピーの情報を確認する
    3. 差分を確認する
    4. 最新状態へ更新する
  14. GUIで確認する方法
  15. ショートカットキー
  16. ログの確認方法
  17. イベントビューアーを確認する場面
  18. 初心者がやりがちなミス
  19. 筆者の現場経験
  20. 上司へ報告するポイント
  21. エスカレーションするタイミング
  22. 新人が覚えておくべきポイント
  23. 関連するIT用語
  24. よくある質問(FAQ)
    1. GitとGitHubは同じですか?
    2. SVNは古いので使わないほうがよいですか?
    3. Gitはサーバーがなくても使えますか?
    4. GitとSVNを同じ案件で併用できますか?
    5. Gitで作業前に何を確認すればよいですか?
  25. まとめ

GitとSVNの違いを一覧で確認

比較項目 Git SVN
正式名称 Git Apache Subversion
管理方式 分散型 集中型
履歴の保存場所 各PCとリモートリポジトリ 中央サーバー
オフラインでのコミット 可能 基本的に不可
ブランチ作成 高速で使いやすい Gitより慎重な運用が必要
一部フォルダーだけの取得 標準運用では不向き 比較的行いやすい
大容量バイナリーファイル 追加対策が必要になる場合がある 運用しやすい場合がある
代表的な用途 ソフトウェア開発、構成管理 既存業務システム、文書・素材管理

Gitとは

Gitは、ファイルの変更履歴を管理する分散型バージョン管理システムです。

Gitでは、開発者が自分のPCへリポジトリを複製します。リポジトリとは、ファイル本体と変更履歴を保存する場所のことです。

各PCに履歴があるため、ネットワークへ接続していない状態でも、履歴確認やコミットなどの作業ができます。

Gitでよく使う用語

SVNとは

SVNは、Apache Subversionという集中型バージョン管理システムです。

変更履歴は中央のSVNサーバーで管理されます。利用者はサーバーから必要なファイルをチェックアウトし、変更後にコミットします。

管理場所が明確なため、集中管理を重視する企業や、古くから運用されている業務システムで使われることがあります。

SVNでよく使う用語

最大の違いは分散型と集中型

Gitは各PCに履歴を持つ

Gitでは、開発者のPCにも基本的な履歴が保存されます。

中央のリモートリポジトリへ接続できない場合でも、ローカルでコミットや差分確認が可能です。通信が復旧した後にプッシュできます。

SVNは中央サーバーで履歴を管理する

SVNでは、履歴の中心がSVNサーバーにあります。

コミットや最新版の取得では、通常はサーバーとの通信が必要です。サーバーへ接続できない場合、作業ファイルの編集はできても、変更の登録ができません。

Gitのコミットとプッシュは別の操作

初心者が特に混乱しやすいのが、Gitのコミットとプッシュの違いです。

Gitではコミットしただけでは、ほかのメンバーから変更を確認できない場合があります。共有するにはプッシュが必要です。

SVNのコミットは、通常そのまま中央サーバーへの登録になります。この違いを理解していないと、「コミットしたのに相手へ反映されていない」というトラブルが発生します。

ブランチの違い

ブランチとは、本番用のファイルへ直接影響を与えず、別の作業線で開発する仕組みです。

Gitはブランチの作成や切り替えが軽く、機能追加、不具合修正、検証作業などで頻繁に利用されます。

SVNでもブランチは作成できますが、一般的にはリポジトリ内のディレクトリをコピーして管理します。運用ルールが不明確だと、どのブランチが最新なのか分かりにくくなることがあります。

どのような場面で使われるか

Gitが使われやすい場面

CI/CDとは、変更したプログラムのテストや配布を自動化する仕組みです。

SVNが使われやすい場面

GitとSVNはどちらを選ぶべきか

要件 向いている方式
ブランチを頻繁に作成する Git
オフラインでも履歴を登録したい Git
開発ツールやCI/CDと連携したい Git
既存のSVN運用を継続する SVN
特定フォルダーだけ取得したい SVN
編集前にファイルをロックしたい SVNが適する場合がある

新規のソフトウェア開発ではGitが選ばれることが多い一方、既存環境ではSVNが現役で使われている場合もあります。

IT現場でよくあるトラブル例

Gitでコミットしたのに変更が共有されない

ローカルでコミットしただけで、プッシュしていない可能性があります。

対象ブランチとプッシュ状況を確認します。

Gitでプッシュが拒否される

リモート側に、自分のPCへ取り込んでいない変更があると、プッシュを拒否されることがあります。

先にリモートの変更を取得し、競合があれば解消してから再度プッシュします。

SVNでコミットできない

作業コピーが古い、ファイルがロックされている、SVNサーバーへ接続できない、権限がないなどの原因が考えられます。

競合が発生する

競合とは、複数人が同じ部分を変更し、自動的に統合できない状態です。

GitでもSVNでも発生します。自分の判断だけで削除せず、変更者と内容を確認してから修正します。

障害発生時の確認する順番

  1. GitとSVNのどちらを使用しているか確認する
  2. 対象リポジトリとブランチ、またはSVNのURLを確認する
  3. 自分だけの問題か、ほかのメンバーも発生しているか確認する
  4. ネットワークやVPNへ接続できているか確認する
  5. 認証情報とアクセス権限を確認する
  6. 変更状態とエラーメッセージを確認する
  7. サーバーや管理サービスの障害情報を確認する

原因の切り分け

症状 主な確認箇所
自分だけ接続できない 認証情報、権限、PC設定、VPN
全員が接続できない サーバー、ネットワーク、サービス障害
取得はできるが登録できない 書き込み権限、ブランチ保護、ロック
特定ファイルだけ更新できない 競合、ロック、ファイル権限
Gitで共有されない プッシュ忘れ、ブランチ間違い

Gitをコマンドで確認する方法

現在の変更状態を確認する

git status

変更済みファイル、未追跡ファイル、現在のブランチなどを確認できます。

変更履歴を確認する

git log –oneline

コミット履歴を1行ずつ簡潔に表示します。

リモートリポジトリを確認する

git remote -v

取得先と送信先のURLを確認できます。

変更差分を確認する

git diff

まだコミットしていない変更内容を確認できます。

現在のブランチを確認する

git branch –show-current

作業中のブランチ名が表示されます。

SVNをコマンドで確認する方法

変更状態を確認する

svn status

変更、追加、削除、競合などの状態を確認できます。

作業コピーの情報を確認する

svn info

リポジトリURLやリビジョン番号を確認できます。

差分を確認する

svn diff

ローカルで変更した内容を確認できます。

最新状態へ更新する

svn update

中央サーバーから最新の変更を取得します。未保存の作業がある場合は、差分を確認してから実行しましょう。

GUIで確認する方法

Windowsでは、GitやSVNを画面操作で扱えるクライアントツールも利用されます。

GUIでは、変更ファイル、差分、履歴、ブランチ、競合などを視覚的に確認できます。

ただし、トラブル時は画面の表示だけでなく、実行した操作とエラーメッセージを記録することが重要です。

ショートカットキー

利用する開発ツールによって異なりますが、次のショートカットは確認作業で役立ちます。

ログの確認方法

GitやSVNの問題では、最初にコマンド画面やクライアントツールへ表示されたエラーを確認します。

次の情報を記録しておくと、原因を調査しやすくなります。

イベントビューアーを確認する場面

GitやSVNの競合、ブランチ間違い、コミットミスは、通常イベントビューアーには記録されません。

ただし、次のようなWindows側の問題が疑われる場合は確認します。

  1. WindowsキーとRキーを押す
  2. eventvwr.mscと入力する
  3. 「Windowsログ」を開く
  4. 「アプリケーション」と「システム」を確認する
  5. 障害発生時刻付近のエラーを探す

初心者がやりがちなミス

筆者の現場経験

新人時代、Gitで修正をコミットしただけで作業完了だと思い、チームへ「反映しました」と報告したことがあります。しかし、実際にはプッシュしておらず、ほかのメンバーから変更を確認できませんでした。

また、SVN環境では最新状態へ更新せずに長時間作業し、コミット時に複数の競合が発生した経験があります。

それ以降は、作業前に更新状況と対象ブランチを確認し、作業後は共有先へ反映されたことまで確かめるようにしています。

上司へ報告するポイント

エスカレーションするタイミング

機密情報を誤ってコミットした場合は、単純にファイルを削除するだけでは履歴に残ることがあります。直ちに管理者やセキュリティ担当へ報告してください。

新人が覚えておくべきポイント

関連するIT用語

よくある質問(FAQ)

GitとGitHubは同じですか?

同じではありません。Gitはバージョン管理システムです。GitHubは、Gitリポジトリを保存・共有し、レビューや課題管理などを行えるサービスです。

SVNは古いので使わないほうがよいですか?

一概にはいえません。新規開発ではGitが適することが多いものの、既存システムやファイル管理の要件によってはSVNが使われ続けています。

Gitはサーバーがなくても使えますか?

ローカルPCだけでも利用できます。ただし、チームで共有する場合は、通常リモートリポジトリを用意します。

GitとSVNを同じ案件で併用できますか?

技術的には可能ですが、管理対象や運用ルールが分かりにくくなります。どのファイルをどちらで管理するか明確に決める必要があります。

Gitで作業前に何を確認すればよいですか?

対象リポジトリ、現在のブランチ、未コミットの変更、リモートとの差分を確認します。作業指示と異なるブランチでないことも重要です。

まとめ

GitとSVNは、どちらもファイルの変更履歴を管理するためのバージョン管理システムです。

Gitは各PCにも履歴を持つ分散型で、ブランチを使った開発や複数人での並行作業に向いています。SVNは中央サーバーで履歴を管理する集中型で、管理場所が分かりやすく、既存の業務環境でも利用されています。

IT初心者は、まずGitでは「コミットとプッシュが別」、SVNでは「コミットすると中央サーバーへ登録される」という違いを覚えましょう。作業前に最新状態と作業場所を確認し、エラーが発生した場合は対象リポジトリ、ブランチ、実行操作、エラーメッセージを整理して報告することが、現場で評価される基本動作です。

モバイルバージョンを終了