22

SO で少なくとも 10 人から、バージョン管理は良いことだと言われた後、たとえそれが私だけであっても、フォローアップの質問があります。

さまざまな種類のバージョン管理の違いは何ですか? また、非常にシンプルで理解しやすいバージョン管理について誰もが知っているガイドはありますか?

4

13 に答える 13

20

私たちはバージョン管理の黄金時代にいるようで、たくさんの選択肢があり、そのすべてに長所と短所があります。

最もよく使われているのは次のとおりです。

  • svn - 現在最も人気のあるオープンソース?
  • git - Linus が Git に切り替えて以来、非常にホットです
  • 水銀 - 私が知っている何人かの賢い人はそれを誓います
  • cvs - 誰もが切り替えているもの
  • perforce - 最高の機能ですが、オープン ソースではありません。ただし、2 ユーザー ライセンスは無料です。
  • visual sourcesafe - 私は Microsoft の世界にはあまり詳しくないので、Microsoft のすべてのものをぼろぼろにするのと同じようにぼろぼろにするのが好きな人以外は、これについて何もわかりません。
  • sccs - 歴史的関心のために、これについて言及します。これは、上記の多くの曽祖父です。
  • rcs - そして上記の多くの祖父

私の推奨事項: git、svn、perforce のいずれかを使用するのが最も安全です。多くの人がそれらを使用し、クロスプラットフォームであり、優れた GUI を備えており、それらに関する本を購入できるなどの理由からです。

cvs、sccs、rcs を考慮しないでください。それらはアンティークです。

良い点は、プロジェクトが比較的小さいため、経験を積んで別のシステムで作業することに決めたら、コードを新しいシステムに移動できることです。

于 2008-08-06T19:10:51.687 に答える
15

Eric Sink は、ソース管理の概要をよく説明しています。ここには、SOに関するいくつかの既存の 質問もあります。

于 2008-08-06T19:02:28.303 に答える
6

バージョン管理を始めたばかりの皆さんへ:

誇大宣伝のため、git (または hg または bzr) を使用しないでください。

git (または hg または bzr) を使用してください。ソース コードを管理するには、SVN よりも優れたツールです。

仕事で数年間 SVN を使用していましたが、6 か月前に git に切り替えました。最初に SVN を学ばなければ、DVCS の使用に関しては完全に道に迷ってしまいます。

バージョン管理を始めたばかりの人向け:

  • SVNをダウンロードすることから始めます
  • バージョン管理が必要な理由を学ぶ
  • コミット、チェックアウト、ブランチの方法を学ぶ
  • SVN でのマージがなぜそんなに苦痛なのかを学ぶ

次に、DVCS に切り替えて、次のことを学びます。

  • クローン/ブランチ/コミットする方法
  • ブランチを元に戻すのがいかに簡単か (ブランチを夢中に!)

  • コミット履歴を書き換えて、メインラインでブランチを最新の状態に保つのがどれほど簡単か( git rebase -i )
  • 他の人が利益を得られるように変更を公開する方法

tldr; 群衆:

SVN から始めて基本を学び、卒業して DVCS に進みます。

于 2008-08-06T19:34:49.940 に答える
5

バージョン管理は、自分自身を保護するため、自分で作業している場合でも、開発に不可欠です。間違いを犯した場合、動作することがわかっている以前のバージョンのコードに簡単にロールバックできます。これにより、コードを調べて実験することも自由になります。これは、実行していることが元に戻せるかどうかを心配する必要がないためです。バージョン管理システム (VCS) には、集中型と分散型の 2 つの主要なブランチがあります。

集中化された VCS は、誰もがプロジェクトを「チェックアウト」して作業し、他の人が使用できるように変更をサーバーに「コミット」する中央サーバーの使用に基づいています。主な集中型 VCS は CVS と SVN です。「マージ」「ブランチ」は非常に苦痛であるため、どちらも非常に批判されてきました。[TODO: ブランチとは何か、CVS と SVN でマージが難しい理由について説明を書く]

分散型 VCS では、誰もが独自のサーバーを持つことができ、他のユーザーから変更を "プル" したり、変更をサーバーに "プッシュ" したりできます。最も一般的な分散型 VCS は Git と Mercurial です。[TODO: 分散型 VCS について詳しく書く]

プロジェクトに取り組んでいる場合は、分散型 VCS を使用することを強くお勧めします。Git は非常に高速なのでお勧めしますが、使いにくいと批判されています。商用製品を使用してもかまわない場合、BitKeeper はおそらく使いやすいでしょう。

于 2008-08-06T19:00:23.050 に答える
5

私はから始めます:

それを読んだら、SVNTortoiseSVNをダウンロードしてインストールし、本の最初の数章をざっと読んで始めてください。

于 2008-08-06T19:02:22.203 に答える
2

質問への回答もここに適用されます。最も重要なのは

Jon Works氏は次
のように述べています。バージョン管理で最も重要なことは次のとおりです。

使い始めるだけ

彼の答えはさらに詳しく説明されています。私は盗作で告発されたくないので、見てください。

于 2008-08-06T19:29:10.153 に答える
2

簡単な答えは、元に戻すボタンが好きですか? もちろん、答えはイエスです。なぜなら、私たち人間は常に間違いを犯すからです。

プログラマーとして、問題を修正するために使用しようとしている方法が完全に間違ったものであると判断する前に、テスト、コードの変更、上書き、削除、ファイルの移動、名前の変更に数時間かかることがよくあります。コードは開始時よりも壊れています。

そのため、ソース管理は、草が緑で食べ物が豊富だった以前の時間にコードを戻すための巨大な元に戻すボタンです。それだけでなく、ソース管理の仕組みのおかげで、壊れたコードのコピーを保持しておくことができます。数週間後にもう一度参照して、そこから出てきた良いアイデアを選び出す場合に備えてです。 .

私は個人的に (やり過ぎと言えるかもしれませんが)、Source Gear Fortress (バグ追跡機能を備えた Vault ソース管理製品) の無料のシングル ユーザー ライセンス バージョンを使用しています。UI は非常に使いやすく、チェックアウト > 編集 > チェックイン モデルと編集 > マージ > コミット モデルの両方をサポートしています。ただし、ISS と SQL サーバーのローカル コピーを実行する必要があるため、セットアップが少し難しい場合があります。ここで他の回答で推奨されているような、より小さなプログラムを試してみることをお勧めします。あなたが好きなものとあなたが買うことができるものを見てください。

于 2008-08-06T23:31:21.270 に答える
2

マークは次のように述べています。

git - Linus が Git に切り替えて以来、非常にホットです

指摘したいのは、Linus がそれに切り替えたのではなく、Linusが書いたということです。

于 2008-08-06T23:33:52.843 に答える
1

Windows 環境で自分で作業している場合、SourceGear の Vault のシングル ユーザー ライセンスは無料です。

于 2008-08-06T19:15:30.227 に答える
1

私たちはMercurialを好んで使用しています。これは分散モデルに従っており、作業を「チェックイン」する必要がなくなります。Mozilla はMercurialに移行しました。これは、すぐになくなることはないという良い兆候です。私の意見では、欠点の 1 つは、そのための優れた GUI がないことです。ただし、コマンド ラインに慣れている場合は、非常に便利です。

Mercurial ドキュメンテーション 非公式マニュアル

于 2008-08-06T19:59:33.697 に答える
0

使用するタイプに関係なく、ソース管理を使い始めるだけです。何を使うかは問題ではありません。重要なのはそれを使用することです

于 2008-08-17T02:17:44.077 に答える
0

他のすべての人と同じように、SC はお客様のニーズ、予算、環境などに大きく依存します。

ソース管理は、すべてのコードの中央リポジトリを提供し、誰がいつ何をしたかを追跡するように設計されています。完全な履歴が必要であり、完全な変更ログ、監査、アクセス制御などを行う製品を入手できます...

世の中に出回っている各製品は、SC を自分の環境 (個人のコードやドキュメントであろうと大企業であろうと) にどのように組み込みたいか、または組み込む必要があるかを検討し始めると、(いわば) 輝き始めます。そして、人々がそれらを使用するにつれて、ツールには制限があることに気づき、新しいものを作成します。SVN は、作成者が CVS で見た制限から生まれました。Linus は Linux カーネルにもっと良いものを求めていたので、今ではgitがあります。

1つ(非常に人気があり、非常に使いやすいSVNのようなもの)を使い始めて、それがどうなるか見てみましょう。時間が経つにつれて、他の機能が必要になったり、他のシステムとのインターフェイスが必要になったりして、SourceSafe または別のツールが必要になる場合があります。

ソース管理は常に重要です。PSD ファイルなどのバージョンを作業中に手動で番号を付け直すことはできますが、そのバッチ スクリプトを 1 回か 2 回実行するのを忘れるか、どの番号を付けたか忘れてしまう可能性があります。どの変更で。ここで、これらの SC ツールのほとんどが役立ちます (チェックイン/チェックアウトする限り)。

于 2008-10-07T12:36:31.950 に答える
0

このSOの質問も参照してください:

于 2009-05-31T09:34:01.227 に答える