有人可以澄清更新和拉命令之间的确切区别吗?
感谢。
答案 0 :(得分:49)
hg update:http://www.selenic.com/mercurial/hg.1.html#update
hg pull:http://www.selenic.com/mercurial/hg.1.html#pull
因此,当您执行hg pull时,您将对.hg
下的存储库进行更改。它不会反映在您的工作目录中。
之后,当您执行hg update
时,更改会被带到您的工作副本。
Your repo Remote Repo
\ \
| hg pull |
|-.hg <-------------------------------- |-.hg
| | --------------------------------> |
| hg update hg push |
| | |
|- working folder |- working folder
当来自像版本控制系统这样的颠覆时,这是非常常见的混淆。
在subversion中:svn update将更改从中央存储服务器带到您的工作副本
但在DVCS中,您既有本地存储库又有工作副本。因此更新完全相同,但将更改从本地存储库转移到本地工作副本。
答案 1 :(得分:17)
Mercurial是一个分布式版本控制系统,因此您拥有整个仓库历史记录以及您的代码版本(称为“工作副本”)。
pull
会对您的本地仓库进行远程更改。
update
更改您的工作副本以匹配本地仓库中的最新版本。
因此,如果您克隆远程分支并继续运行更新,则代码不会更改,因为您从未下载远程代码。如果你继续运行pull,那么你的代码就不会改变,因为你从不使用远程代码(将它应用到代码的工作版本)。
答案 2 :(得分:6)
pull命令从父存储库中提取更改,但实际上并未对存储库中的文件进行任何更改。
更新命令用于实际更新存储库中的文件。
答案 3 :(得分:1)
link中的这张图片可以帮助您理解它: