過去のプロジェクトのソース コード リポジトリを維持するために、「従来の」バージョン管理システムを使用してきました。分散型チームで新しいプロジェクトを開始していますが、分散型システムを使用する利点を理解しています。私は SourceSafe、CVS、および Subversion を理解しています。Git初心者に何か提案はありますか?
5 に答える
Git - SVN Crash Courseは、始めるのに適した読み物です。
SubversionからGitに移行した私自身の経験では、最も重要なことは、何を学ぶ必要があるかではなく、何を学ぶ必要があるかということです。分散バージョン管理は、集中バージョン管理とは大きく異なります。CVCはDVCのサブセットであるため、DVCツールでCVCを実行できますが、CVCツールよりも複雑になります。
CVCの学習をやめ、DVCの考え方を取り入れてみてください。DVCツールでCVCを実行することになった場合、追加されたすべての複雑さに不満を感じるだけであり、その追加された複雑さが柔軟性の点で何を購入しているのかがわかりません。
すべてのDVCツールは、分岐とマージを非常に強力にサポートしています。これを使って。すべての履歴はあなたの指先で利用可能です。これを使って。(例:コードをコメントアウトせず、削除するだけです。インターネットに接続されていない飛行機でも、いつでも元に戻すことができます。)
Gitの非常に重要な側面の1つは、他のすべてのツールには多かれ少なかれ定義されたワークフローがあります。Gitはそうではありません。GitはDVCSワークフロー構築キットです。これにより、何をすべきかを理解するのが難しい場合があります。独自のワークフローを設計および実装する必要があります(ヒント:多くのシェルスクリプトを使用します)。私はGitを1年以上使用していますが、ワークフローをまだ完全に理解していません。
チュートリアルを行う
それからそれで遊んでください。メインのコードベースで作業を開始する前に、ちょっとしたおもちゃのプロジェクトを実行して感触をつかんでください。
私は gitk をよく使ってパッチをレビューし、コミットからコミットへのコードの変更を追跡します。
ファイルをコミットする前に、ファイルを Git ステージング領域に毎回追加する必要があります。これを簡単にするために、 のよう-a
にすべての追跡ファイルを追加するオプションがありますgit commit -a
。
また、実行するgit diff
と、作業コピーとステージング領域にあるものとの違いのみが表示されます。変更されたファイルをステージング領域に追加した場合、git diff
変更がコミットされていない場合でも、 は何も報告しない場合があります。git status
確実に見るために使用します。
会社でgitを試しました。私たちは CVS を使用していましたが、より優れた VC ツールに移行したいと考えていました。ファイルのバージョン管理に最適なツールとして git を選択しました (Linus on GIT)。そのパフォーマンスは最高であり、バージョン管理を深く理解している開発者にとっては本当に素晴らしいツールですが、バックグラウンドでバージョン管理を使用し、それ以上の使用方法を学びたくない通常の開発者にとっては悪夢です.数時間 (そして彼らは多くを学ぶ必要があります)
また、既存の IDE との統合も完全にはほど遠いものです。全体の使いやすさは、通常の開発者にとってかなり大きな問題です。
4 人の開発者とのパイロットの後、それほど優れたツールではありませんが、最も単純な Subversion に切り替えました。
Subversion MultiSite の商用ソリューションもあります (まだ試していませんが、すぐに試す予定です) - WANDisco