git 的一个好处是“每个人都可以拥有完整的备份”作为 DVCS 相对于 SVN。我不太明白。
例如,John 有一个带有分支 branch_a 的 git repo,Peter 有另一个带有 branch_b 的 git repo。branch_a 和 branch_b 不同,没有同步备份是不完整的。
作为SVN他们也可以将所有代码拉到本地,这也是一种“完全备份”吗?
存储库的每个克隆都是完整的 .. 存储库的克隆:它包含每个提交。当你说
就像在 SVN [..] 中一样,它也是一种“完全备份”吗?
这是错误的,因为在 SVN 中,您只需将特定版本检出到本地工作区,仅此而已。特别是:当您的网络连接中断时,您无法使用 SVN 进行任何操作。因为 git 存储库有每个提交(只要您不时获取所有提交,例如通过git fetch --all
),您可以照常工作并稍后推送到远程提交。如果有人破坏了远程存储库,那么每个开发人员都拥有它的副本。
在 SVN 的“正常”使用中,您只有一个分支检出,并且只有最新版本。如果你想要另一个分支,或者文件的旧版本,你需要去服务器。您可以查看整个存储库,但同样只能查看当前版本。更重要的是,您需要设置存储库复制,这很复杂,绝对不是正常开发人员工作流程的一部分。
在 git 中,您可以通过正常的结帐程序轻松地从服务器获取所有数据的完整副本。你通常从一个“克隆”开始,它拥有一切。即使您只“拉”一个分支,您仍然可以获得其中所有内容的完整历史记录。