Version control 什么';更新和拉取的区别是什么?
有人能澄清一下update和pull命令之间的确切区别吗 谢谢。hg更新:Version control 什么';更新和拉取的区别是什么?,version-control,mercurial,Version Control,Mercurial,有人能澄清一下update和pull命令之间的确切区别吗 谢谢。hg更新: 将存储库的工作目录(“工作副本”)更新为存储库的指定版本 汞拉力: 允许您从远程存储库带来更改 因此,当您执行hg pull时,您会将更改带到.hg下的存储库中。它不会反映在您的工作目录中 之后,当您执行hg更新时,更改将被带到您的工作副本中 Your repo Remote Repo \
- 将存储库的工作目录(“工作副本”)更新为存储库的指定版本
- 允许您从远程存储库带来更改
.hg
下的存储库中。它不会反映在您的工作目录中
之后,当您执行hg更新时
,更改将被带到您的工作副本中
Your repo Remote Repo
\ \
| hg pull |
|-.hg <-------------------------------- |-.hg
| | --------------------------------> |
| hg update hg push |
| | |
|- working folder |- working folder
您的回购远程回购
\ \
|汞拉力|
|-.hg|
|hg更新hg推送|
| | |
|-工作文件夹|-工作文件夹
当来自类似于颠覆的版本控制系统时,这是非常常见的混淆
在subversion:svn update中,将更改从中央repo服务器带到您的工作副本
但在DVCSs中,您同时拥有本地存储库和工作副本。因此,update的操作与此完全相同,但会将更改从本地repo提取到本地工作副本。pull命令会从父存储库提取更改,但实际上不会对存储库中的文件进行任何更改
Your repo Remote Repo
\ \
| hg pull |
|-.hg <-------------------------------- |-.hg
| | --------------------------------> |
| hg update hg push |
| | |
|- working folder |- working folder
Update命令用于实际更新存储库中的文件
参考:
Mercurial是一个分布式版本控制系统,因此您拥有整个回购历史以及代码版本(称为“工作副本”)
pull
为本地回购带来远程更改
update
更改您的工作副本以匹配本地回购中的最新版本
因此,如果您克隆远程分支并继续运行更新,您的代码将不会更改,因为您永远不会下载远程代码。如果您继续运行pull,那么您的代码将不会更改,因为您从未使用远程代码(将其应用于代码的工作版本)。此图片有助于理解它:
如果这让人困惑,您可能需要阅读一篇文章。fetch扩展也值得一看,因为它将pull、merge和commit(如有必要)以及update组合到一个命令中。在提供的图片中添加一些文本上下文有助于更好地理解您的答案。不过,我没有被否决