Mercurial-提交然后拉取新更改创建多个头部

Mercurial-提交然后拉取新更改创建多个头部,mercurial,atlassian-sourcetree,Mercurial,Atlassian Sourcetree,即使我已经提交了尚未推送的更改,如何让mercurial在拉入时自动合并 当我提交并拉取新更改时,我得到两个头部 Git在默认情况下似乎可以做到这一点,所以我希望这是一个设置。我正在使用SourceTree作为mercurial的GUI。合并是一种编码,您真的应该质疑是否自动执行此操作。对于git,常见的建议是使用--ff only选项进行git pull,该选项告诉git,如果合并是“快进”的,则只进行合并,也就是说“根本不是没有本地更改的合并” 无论是git还是Mercurial,大多数人都

即使我已经提交了尚未推送的更改,如何让mercurial在拉入时自动合并

当我提交并拉取新更改时,我得到两个头部


Git在默认情况下似乎可以做到这一点,所以我希望这是一个设置。我正在使用SourceTree作为mercurial的GUI。

合并是一种编码,您真的应该质疑是否自动执行此操作。对于git,常见的建议是使用
--ff only
选项进行
git pull
,该选项告诉git,如果合并是“快进”的,则只进行合并,也就是说“根本不是没有本地更改的合并”

无论是git还是Mercurial,大多数人都倾向于使用
——rebase
,而不是自动合并。它修改您的本地工作,将其附加到您刚才拉下来的工作的末尾,并保存您创建新合并变更集的过程


如果您确实想在Mercurial中自动合并,那么命令是
hg fetch
,但您必须在
~/.hgrc
[扩展]
部分启用它,因为默认情况下禁用它是一个坏主意(但确实提供了w/Mercurial,因此没有任何安装).

合并是一种编码,你真的应该质疑你自动进行合并的决定。对于git,常见的建议是使用
--ff only
选项进行
git pull
,该选项告诉git,如果合并是“快进”的,则只进行合并,也就是说“根本不是没有本地更改的合并”

无论是git还是Mercurial,大多数人都倾向于使用
——rebase
,而不是自动合并。它修改您的本地工作,将其附加到您刚才拉下来的工作的末尾,并保存您创建新合并变更集的过程


如果您确实想在Mercurial中自动合并,那么命令是
hg fetch
,但您必须在
~/.hgrc
[扩展]
部分启用它,因为默认情况下禁用它是一个坏主意(但确实提供了w/Mercurial,因此没有任何东西可安装)。

如果有人按下,为什么我不想自动合并他们的更改?如果我担心我的代码被污染,我会使用不同的分支即使你使用一个单独的分支,你仍在某个时候合并。这是一个修改代码的行为,所以经常听到的意见是,这应该是一个明确的行为。我并不是说你是个坏人,只是让你知道为什么这不是“拉”的默认动作,以及为什么
--ff only
在git圈子里如此流行。这很公平。后来我意识到我可以运行hgmerge,它会合并多个头部,所以现在问题不大了。谢谢你的评论。在进行提交和自动推送之前,有没有一种自动拉送的方法?如果有人推送了,为什么我不想自动合并他们的更改?如果我担心我的代码被污染,我会使用不同的分支即使你使用一个单独的分支,你仍在某个时候合并。这是一个修改代码的行为,所以经常听到的意见是,这应该是一个明确的行为。我并不是说你是个坏人,只是让你知道为什么这不是“拉”的默认动作,以及为什么
--ff only
在git圈子里如此流行。这很公平。后来我意识到我可以运行hgmerge,它会合并多个头部,所以现在问题不大了。谢谢你的评论。在进行提交和自动推送之前,是否有一种自动拉取的方法?