svn と git の違いは何ですか?
git と svn の違い
GIT はバージョン管理システムであるだけでなく、コンテンツ管理システムでもあります ( CMS)・勤務管理システムなどSVN の使用経験がある場合は、GIT が提供する概念や機能の一部に適応するために、精神的な変更を加える必要があります。
1. GIT は分散されますが、SVN はそうではありません:
これが、GIT と、SVN、CVS などの他の非分散バージョン管理システムとの主な違いです。この概念を理解できれば、半分まで到達したことになります。少し免責事項を付けておきますが、GIT は現在最初または唯一の分散バージョン管理システムではありません。 Bitkeeper、Mercurial など、分散モードで実行されるシステムもいくつかあります。ただし、GIT はこの点で優れた機能を備えており、より強力な機能を備えています。
GIT には、SVN と同様に、独自の集中リポジトリまたはサーバーがあります。ただし、GIT は分散モードで使用することを好みます。つまり、各開発者は、中央リポジトリ/サーバーからコードをチェックアウトした後、自分のマシン上に自分のリポジトリのクローンを作成します。飛行機内、地下室、エレベーター内など、インターネットにアクセスできない場所に閉じ込められた場合でも、ファイルの送信、履歴バージョン レコードの表示、プロジェクト ブランチの作成などを行うことができると言えます。あまり役に立たないと思われる方もいるかもしれませんが、突然ネットワークのない環境に遭遇した場合、これで大きな問題が解決されます。
同様に、この分散オペレーティング モードは、オープン ソース ソフトウェア コミュニティの開発への大きな贈り物でもあります。以前のようにパッチ パッケージを作成して電子メールで送信する必要はなくなり、A を作成するだけで済みます。プロジェクト チームにプッシュ リクエストを送信するブランチ。これにより、コードが最新の状態に保たれ、転送中に失われることがなくなります。 GitHub.com は非常に優れた事例です。
Subversion の将来のバージョンも分散モードに基づいているという噂が広まっています。しかし、少なくともそれはまだ見えていません。
2.GIT はコンテンツをメタデータごとに保存しますが、SVN はコンテンツをファイルごとに保存します。
すべてのリソース制御システムは、ファイルのメタ情報を .svn、.cvs などのフォルダーに似たファイルに隠します。 .git ディレクトリのサイズと .svn のサイズを比較すると、大きく異なることがわかります。 .git ディレクトリはマシン上のリポジトリのクローン バージョンであるため、タグ、ブランチ、バージョン レコードなど、中央リポジトリ上のすべてのものが含まれています。
3. GIT ブランチは SVN ブランチとは異なります:
ブランチは SVN では特別なものではなく、リポジトリ内の単なる別のディレクトリです。ブランチがマージされているかどうかを知りたい場合は、 svn propget svn:mergeinfo のようなコマンドを手動で実行して、コードがマージされているかどうかを確認する必要があります。この機能を指摘してくれたクラスメートの Ben に感謝します。したがって、一部の分岐が見逃されることがよくあります。
しかし、GIT ブランチの操作は非常にシンプルで楽しいものです。同じ作業ディレクトリから複数のブランチ間をすばやく切り替えることができます。マージされていないブランチを簡単に見つけることができ、これらのファイルを迅速かつ簡単にマージできます。
4.GIT にはグローバル バージョン番号がありませんが、SVN には次のようなものがあります。
これまでのところ、SVN と比較して GIT に欠けている最大の機能です。また、SVN バージョン番号は実際には、対応する時点のソース コードのスナップショットであることもわかります。これは CVS から SVN への進化における最大のブレークスルーだと思います。 GIT と SVN は概念的に異なるため、GIT のどの機能がそれらに対応するのかわかりません。手がかりがある場合は、コメントで共有してください。
更新: 一部の読者は、GIT の SHA-1 を使用してコード スナップショットを一意に識別できると指摘しました。これは、SVN の読みやすい数値のバージョン番号を完全に置き換えるものではありません。ただし、目的は同じである必要があります。
5. GIT のコンテンツの整合性は SVN より優れています:
GIT のコンテンツ ストレージは SHA-1 ハッシュ アルゴリズムを使用します。これにより、コード コンテンツの整合性が確保され、ディスク障害やネットワークの問題が発生した場合のリポジトリへの中断が軽減されます。
関連する推奨事項:「Git チュートリアル 」
以上がsvnとgitの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。