0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitとSVNについて

0
Last updated at Posted at 2025-07-07

GitとSVNについて

Git:分散型

ローカルPCにローカルリポジトリを持つ

開発手順
    リモートリポジトリをクローンしてローカルリポジトリを作成
    ↓
    改修後、ローカルリポジトリにコミット
    ↓
    リモートリポジトリにプッシュ

・メリット
 ローカルリポジトリでソースコードを管理するため、
 ・「ブランチを切り替える」
 ・「コミットする」
 ・「差分を比較する」
 ・「マージする」
 といった操作の度にリモートリポジトリアクセスする必要がない

SVN:集中型

サーバーのリモートリポジトリだけがソースのバージョンを管理

開発手順
	リモートリポジトリにアクセス
	↓
	ローカルPCにしてしたバージョンのソースをダウンロード(チェックアウト)
	↓
	改修後、リモートリポジトリにコミット

Git: 分散型バージョン管理システム

・Gitの最大の特徴は、分散型であること。
 これにより、開発の柔軟性と効率性が飛躍的に向上する。

ローカルPCにローカルリポジトリを持つことの意義

・オフライン作業の可能化:

 インターネット接続がない環境でも、コミット、ブランチの切り替え、
 差分確認といったほとんどのバージョン管理作業が可能。
 これは、SVNのような集中型システムでは考えられない大きな利点。

・高速な操作:

 ローカルリポジトリに対する操作は非常に高速。
 リモートリポジトリとの通信が必要ないため、ネットワークの遅延に左右されない。
 大規模なプロジェクトでもサクサクと作業を進められる。

・実験的な開発の促進:

 気軽にブランチを作成し、新しい機能を試したり、バグ修正を行ったりできる。
 本流の開発に影響を与えることなく、独立した環境で試行錯誤できるため、
 より活発な開発が促される。

開発手順の補足

1. リモートリポジトリをクローンしてローカルリポジトリを作成:

 git clone [リモートリポジトリのURL] コマンドを使用。
 これにより、リモートリポジトリの履歴を含む完全なコピーがローカルに作成。

2. 改修後、ローカルリポジトリにコミット:

 変更をステージングエリアに追加し (git add . など)、
 その後 git commit -m "コミットメッセージ"でローカルリポジトリに記録。
 この時点では、変更はまだリモートには反映されていない。

3. リモートリポジトリにプッシュ:

 git push コマンドを使用することで、
 ローカルリポジトリのコミットをリモートリポジトリに送信し、共有。

Gitのその他の特徴とメリット

ブランチとマージの概念:

 Gitはブランチの作成とマージを非常に容易に行えるように設計されている。
 これにより、複数の開発者が同時に異なる機能を開発したり、
 バグ修正と新機能開発を並行して進めたりすることが容易になる。
 特に、Pull Request(GitHubなど)やMerge Request(GitLabなど)といった機能は、
 コードレビューを促進し、品質の高い開発を支援する。

強力な履歴管理:

 コミット履歴は改ざんが困難な構造になっており、信頼性の高い履歴管理が可能。
 また、ログの参照や特定のコミットへの戻り(Revert)なども柔軟に行える。

高い柔軟性と拡張性:

 スクリプトによる自動化や、さまざまな外部ツールとの連携が容易。


SVN: 集中型バージョン管理システム

・SVNは、Gitが普及する以前は主流であった集中型のバージョン管理システム。

サーバーのリモートリポジトリだけがソースのバージョンを管理することの意義

シンプル性:

 バージョン管理の中心がサーバーに集約されているため、
 Gitに比べて概念的に理解しやすい側面がある。

単一の真実:

 すべての履歴が中央サーバーに存在するため、
 どの開発者も常に最新のコードベースにアクセスできる。

開発手順の補足

1. リモートリポジトリにアクセス:

 開発者は常に中央サーバーに接続して作業を行う。

2. ローカルPCに特定のバージョンのソースにチェックアウト:

 svn checkout [リポジトリURL] [ローカルパス] コマンドを使用。
 これは、作業用のコピーを取得するイメージ。

3. 改修後、リモートリポジトリにコミット:

 svn commit -m "コミットメッセージ" コマンドを使用。
 この操作は直接リモートリポジトリに対して行われ、変更がサーバーに反映される。
 コミットする前に、他の開発者の変更と競合しないか (svn update) を確認する必要がある。

SVNのその他の特徴とメリット

アクセスの制御:

中央サーバーでユーザー認証やアクセス権限を厳密に管理できる。

LFS(Large File Support)が不要:

 大容量ファイルを扱う場合、GitではLFSなどの拡張機能が必要になることがあるが、
 SVNでは通常、それほど考慮する必要がない。


GitとSVNの使い分け

プロジェクトの規模、開発チームの文化、要件によって使い分けられる。

Gitが適しているケース:

 分散開発、OSS開発、アジャイル開発など、柔軟性と独立性が求められるプロジェクト
 大規模なチームでの並行開発
 オフラインでの作業が多い環境

SVNが適しているケース:

 比較的小規模で、厳格な集中管理を好むプロジェクト
 既存のシステムがSVNで構築されており、移行コストが大きい場合

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?