SO で少なくとも 10 人から、バージョン管理は良いことだと言われた後、たとえそれが私だけであっても、フォローアップの質問があります。
さまざまな種類のバージョン管理の違いは何ですか? また、非常にシンプルで理解しやすいバージョン管理について誰もが知っているガイドはありますか?
SO で少なくとも 10 人から、バージョン管理は良いことだと言われた後、たとえそれが私だけであっても、フォローアップの質問があります。
さまざまな種類のバージョン管理の違いは何ですか? また、非常にシンプルで理解しやすいバージョン管理について誰もが知っているガイドはありますか?
私たちはバージョン管理の黄金時代にいるようで、たくさんの選択肢があり、そのすべてに長所と短所があります。
最もよく使われているのは次のとおりです。
私の推奨事項: git、svn、perforce のいずれかを使用するのが最も安全です。多くの人がそれらを使用し、クロスプラットフォームであり、優れた GUI を備えており、それらに関する本を購入できるなどの理由からです。
cvs、sccs、rcs を考慮しないでください。それらはアンティークです。
良い点は、プロジェクトが比較的小さいため、経験を積んで別のシステムで作業することに決めたら、コードを新しいシステムに移動できることです。
Eric Sink は、ソース管理の概要をよく説明しています。ここには、SOに関するいくつかの既存の 質問もあります。
バージョン管理を始めたばかりの皆さんへ:
誇大宣伝のため、git (または hg または bzr) を使用しないでください。
git (または hg または bzr) を使用してください。ソース コードを管理するには、SVN よりも優れたツールです。
仕事で数年間 SVN を使用していましたが、6 か月前に git に切り替えました。最初に SVN を学ばなければ、DVCS の使用に関しては完全に道に迷ってしまいます。
バージョン管理を始めたばかりの人向け:
次に、DVCS に切り替えて、次のことを学びます。
tldr; 群衆:
SVN から始めて基本を学び、卒業して DVCS に進みます。
バージョン管理は、自分自身を保護するため、自分で作業している場合でも、開発に不可欠です。間違いを犯した場合、動作することがわかっている以前のバージョンのコードに簡単にロールバックできます。これにより、コードを調べて実験することも自由になります。これは、実行していることが元に戻せるかどうかを心配する必要がないためです。バージョン管理システム (VCS) には、集中型と分散型の 2 つの主要なブランチがあります。
集中化された VCS は、誰もがプロジェクトを「チェックアウト」して作業し、他の人が使用できるように変更をサーバーに「コミット」する中央サーバーの使用に基づいています。主な集中型 VCS は CVS と SVN です。「マージ」「ブランチ」は非常に苦痛であるため、どちらも非常に批判されてきました。[TODO: ブランチとは何か、CVS と SVN でマージが難しい理由について説明を書く]
分散型 VCS では、誰もが独自のサーバーを持つことができ、他のユーザーから変更を "プル" したり、変更をサーバーに "プッシュ" したりできます。最も一般的な分散型 VCS は Git と Mercurial です。[TODO: 分散型 VCS について詳しく書く]
プロジェクトに取り組んでいる場合は、分散型 VCS を使用することを強くお勧めします。Git は非常に高速なのでお勧めしますが、使いにくいと批判されています。商用製品を使用してもかまわない場合、BitKeeper はおそらく使いやすいでしょう。
簡単な答えは、元に戻すボタンが好きですか? もちろん、答えはイエスです。なぜなら、私たち人間は常に間違いを犯すからです。
プログラマーとして、問題を修正するために使用しようとしている方法が完全に間違ったものであると判断する前に、テスト、コードの変更、上書き、削除、ファイルの移動、名前の変更に数時間かかることがよくあります。コードは開始時よりも壊れています。
そのため、ソース管理は、草が緑で食べ物が豊富だった以前の時間にコードを戻すための巨大な元に戻すボタンです。それだけでなく、ソース管理の仕組みのおかげで、壊れたコードのコピーを保持しておくことができます。数週間後にもう一度参照して、そこから出てきた良いアイデアを選び出す場合に備えてです。 .
私は個人的に (やり過ぎと言えるかもしれませんが)、Source Gear Fortress (バグ追跡機能を備えた Vault ソース管理製品) の無料のシングル ユーザー ライセンス バージョンを使用しています。UI は非常に使いやすく、チェックアウト > 編集 > チェックイン モデルと編集 > マージ > コミット モデルの両方をサポートしています。ただし、ISS と SQL サーバーのローカル コピーを実行する必要があるため、セットアップが少し難しい場合があります。ここで他の回答で推奨されているような、より小さなプログラムを試してみることをお勧めします。あなたが好きなものとあなたが買うことができるものを見てください。
マークは次のように述べています。
git - Linus が Git に切り替えて以来、非常にホットです
指摘したいのは、Linus がそれに切り替えたのではなく、Linusが書いたということです。
Windows 環境で自分で作業している場合、SourceGear の Vault のシングル ユーザー ライセンスは無料です。
使用するタイプに関係なく、ソース管理を使い始めるだけです。何を使うかは問題ではありません。重要なのはそれを使用することです
他のすべての人と同じように、SC はお客様のニーズ、予算、環境などに大きく依存します。
ソース管理は、すべてのコードの中央リポジトリを提供し、誰がいつ何をしたかを追跡するように設計されています。完全な履歴が必要であり、完全な変更ログ、監査、アクセス制御などを行う製品を入手できます...
世の中に出回っている各製品は、SC を自分の環境 (個人のコードやドキュメントであろうと大企業であろうと) にどのように組み込みたいか、または組み込む必要があるかを検討し始めると、(いわば) 輝き始めます。そして、人々がそれらを使用するにつれて、ツールには制限があることに気づき、新しいものを作成します。SVN は、作成者が CVS で見た制限から生まれました。Linus は Linux カーネルにもっと良いものを求めていたので、今ではgitがあります。
1つ(非常に人気があり、非常に使いやすいSVNのようなもの)を使い始めて、それがどうなるか見てみましょう。時間が経つにつれて、他の機能が必要になったり、他のシステムとのインターフェイスが必要になったりして、SourceSafe または別のツールが必要になる場合があります。
ソース管理は常に重要です。PSD ファイルなどのバージョンを作業中に手動で番号を付け直すことはできますが、そのバッチ スクリプトを 1 回か 2 回実行するのを忘れるか、どの番号を付けたか忘れてしまう可能性があります。どの変更で。ここで、これらの SC ツールのほとんどが役立ちます (チェックイン/チェックアウトする限り)。
このSOの質問も参照してください: