Mercurial中克隆和拉动的区别

时间:2011-10-27 10:35:33

标签: mercurial tortoisehg

克隆并拉动这些操作 两者在功能上是相似的,所以使用克隆而不是拉有意义吗? 我的意思是,如果可以通过拉动现有的仓库来实现相同的目的,我为什么要使用克隆呢。


一个团队正在开发某个应用程序,后来又有一个新用户说user2分配给该应用程序,然后克隆现有的repo或拉动现有的repo以获取新的条目(user2),哪个更好?比较黑白克隆/拉

4 个答案:

答案 0 :(得分:7)

提取意味着您已拥有本地存储库,并且您只从远程存储库中提取了尚未在本地存储库中的最新更改。

但是,如果您还没有本地存储库,克隆会创建一个新存储库,将所有从远程存储库中提取到新的本地存储库中并更新您的工作复制到最新版本 如果你加入一个新项目,这是最简单的方法 - 你需要在开始时获得所有代码。

您也可以手动执行克隆步骤,效果完全相同(但只需更轻松地执行hg clone https://url_to_remote):

  • 在本地计算机上创建一个新文件夹
  • 在文件夹(hg init
  • 中创建一个空存储库
  • 从远程存储库(hg pull https://url_to_remote
  • 中提取所有内容
  • 更新您的工作副本(hg update

答案 1 :(得分:1)

这两个命令完全不同:

  • 克隆会创建新存储库
  • 更新现有存储库,带来其他克隆的更改

首先克隆存储库。在那之后,无论何时你想要更新这个克隆来从另一个仓库进行更改,你都可以拉。

答案 2 :(得分:0)

  • clone - 首先是“结帐”来源
  • pull - 下载服务器的“Head”/

答案 3 :(得分:0)

当您克隆存储库时,您正在制作新副本,这可能是一个昂贵的过程。此外,如果您只使用克隆,那么您将面临失去本地更改的风险。

  • 您可以将克隆视为复制整个目录

当您拉动时,这只会更新您的存储库,包含对父存储库所做的任何更改,因为它只是合并差异,这将是一个更有效的过程。

  • 您可以将拉动视为仅更新已更改的文件

我建议您阅读本教程:http://hginit.com/