Mercurial - 何时使用更新

Gre*_*reg 16 merge mercurial

我什么时候使用update vs merge?如果我从远程存储库执行拉取操作,我正在阅读我必须进行更新以将这些更改添加到我的工作目录中.但有些时候我正在阅读,我必须做合并.

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

我在这里不理解什么?

ata*_*lor 17

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

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

  • 虽然这在技术意义上是正确的,但要明白,提取和更新到未提交的(脏)工作目录正在失去mercurial的许多好处.如果您有有意义的更改,请先提交它们,以免损坏上下文并可能在合并中丢失工作. (2认同)

Von*_*onC 15

  • hg update 是关于使您的工作目录与给定的修订版相同
  • hg merge不会将您的工作目录重置为给定的版本(它仍然引用相同的版本),但会将来自另一个修订版的更改合并到您当前的工作目录中.

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

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

  • 如果拉动在您的仓库中添加新的HEAD,则需要合并
added 1 changesets with 1 changes to 1 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
  • 如果pull在你的repo中没有添加新的HEAD,那么简单的更新就足够了