【问题标题】:Mercurial - When to use updateMercurial - 何时使用更新
【发布时间】:2011-03-07 10:08:12
【问题描述】:

何时使用更新与合并?如果我从远程存储库中提取,我正在阅读我必须进行更新才能将这些更改放入我的工作目录。但其他时候我读到我必须合并。

我是否希望在拉取后始终进行更新,然后仅在存在冲突时才进行合并?

这里有什么不明白的地方?

【问题讨论】:

    标签: mercurial merge


    【解决方案1】:

    如果您有本地提交:合并。如果您有未提交的本地修改:更新(将合并)。

    通常当您在本地进行提交时,它会在您拉取时分叉树。在这种情况下,您始终必须合并(或使用 rebase 扩展进行 rebase)。如果您有未提交的本地修改,那么当您拉取时,您可以更新并将更改合并到您的工作区中。

    【讨论】:

    • 虽然这在技术上是正确的,但要明白,拉动和更新到一个未提交的(脏)工作目录会失去很多 mercurial 的好处。如果您有有意义的更改,请先提交它们,以免破坏上下文并可能丢失合并中的工作。
    【解决方案2】:
    • hg update 是关于使您的工作目录与给定修订版相同
    • hg merge 不会将您的工作目录重置为给定的修订版(它仍然引用相同的版本),但会将来自另一个修订版的更改合并到您当前的工作目录中。

    因此,在拉取之后,hg 更新将更改您的工作目录,以反映您拉入存储库的内容。
    但是 hg merge 不会重置你的工作目录,只会合并你的工作目录和你拉取的内容之间的变化。

    hg pull -u 将拉取和更新,拒绝合并或覆盖本地更改。

    • 如果 pull 在你的 repo 中添加一个新的 HEAD,你需要合并
    添加了 1 个变更集,对 1 个文件进行了 1 个更改(+1 个头) (运行 'hg heads' 来查看头部,'hg merge' 来合并)
    • 如果 pull 在你的 repo 中没有添加新的 HEAD,一个简单的更新就足够了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 1970-01-01
      • 2023-04-01
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多