git - 为什么在 git 中 hg pull 之后我需要 hg update 我只做 git pull

标签 git mercurial

git 中 pull 并使用我的本地存储库的最新更改我正在使用 git pull

hg 中,我也使用 hg pull 但它会打印

运行“hg update”以获取工作副本

我确实运行了 hg update 但我想知道为什么这与 git 不同?

最佳答案

其他答案实际上并没有回答这个问题,即:为什么 Git 和 Mercurial 的工作方式不同?有哲学上的区别吗?

在 Mercurial 中,pullpush 相反:它在不触及工作副本的情况下将本地仓库与远程仓库同步。所以它更一致。

在Git中,pull是一个fetch加一个merge,或者一个pull加一个以 Mercurial 术语更新。通常这就是你想要的。所以效率更高。

Distributed Version Control University talk4-minute mark 处有一张幻灯片这清楚地展示了 Mercurial 的工作方式。迈克尔恩斯特的 Version control concepts and best practices有一个类似的图表(包括在下面):

Distributed version control

关于git - 为什么在 git 中 hg pull 之后我需要 hg update 我只做 git pull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19270303/

相关文章:

GitKraken 推送失败

git - 如果 Git 子模块移动到另一台服务器怎么办?

svn - Subversion 是否具有类似于 "hg record"的功能/扩展?

Mercurial 分布式存储库

ssl - 如何在 Mercurial/TortoiseHg 中完全禁用 SSL 证书检查?

Mercurial 变更组 Hook : repository URL

git - 让 Git 在提交之前自动删除尾随空格

git - 为什么在 git 中切换分支时会出现无法消除的差异,如何解决?

unix - 如何在远程服务器上进行 hg clone 后设置权限?

git - 为什么将现有存储库添加为子模块会修改 .git/config?