2

git の利点の 1 つは、SVN に関して DVCS として「誰もが完全なバックアップを持てる」ことです。よくわかりません。

たとえば、John は自分のブランチ branch_a を持つ git リポジトリを持っており、Peter は branch_b を持つ別の git リポジトリを持っています。branch_a と branch_b が異なり、同期がないとバックアップが完了しません。
SVN として、すべてのコードをローカルにプルすることもできますが、これは一種の「フル バックアップ」ですか?

4

2 に答える 2

3

リポジトリのすべてのクローンは、リポジトリの完全なクローンです。すべてのコミットが含まれています。あなたが言う時

SVNのように[..]それは一種の「完全バックアップ」でもあります

SVNでは特定のリビジョンをローカルワークスペースにチェックアウトするだけなので、それは間違っています。特に: ネットワーク接続がダウンしている場合、SVN では何もできません。git リポジトリにはすべてのコミットがあるため (たとえば を介して時々すべてを取得する限りgit fetch --all)、通常どおりに作業して、後でリモート リポジトリにプッシュすることができます。さらに、誰かがリモート リポジトリを壊した場合、すべての開発者がそのコピーを持っています。

于 2012-06-25T06:12:54.963 に答える
1

SVN の「通常の」使用法では、1 つのブランチのみがチェックアウトされ、その最新バージョンのみがチェックアウトされます。別のブランチまたは古いバージョンのファイルが必要な場合は、サーバーに移動する必要があります。リポジトリ全体をチェックアウトすることもできますが、ここでも現在のバージョンのみをチェックアウトします。さらに、リポジトリのレプリケーションを設定する必要がありますが、これは複雑であり、通常の開発者ワークフローの一部ではありません。

git では、通常のチェックアウト手順だけで、サーバーからすべてのデータの完全なコピーを簡単に取得できます。通常、すべてを備えた「クローン」から始めます。単一のブランチを「プル」しただけでも、そこにあるすべての完全な履歴を取得できます。

于 2012-06-25T06:12:45.100 に答える