推到远程仓库合并后“创造了新的远程头” - 是坏?(Pushing to remote repos

2019-08-22 08:15发布

  1. initialized一个水银项目Machine Acommitted我的变化,并uploaded他们到远程仓库。

  2. 然后,我cloned对仓库Machine Bcommitted做一些修改,并uploaded他们到同一个远程存储库。

在这两种情况下,我上传使用相同的命令的变化:

hg push https://username:password@domain/user/repository/

现在我回来了计算机A上,我已经pull从远程仓库ED和merg编使用两个变更集之间的任何变化KDiff3使用命令GUI工具:

hg pull
hg merge
hg commit

然而,当我试图把从计算机A的最新更改回远程仓库拉这之后和合并,我得到这个消息:

hg push https://username:password@domain/user/repository/
pushing to https://username:password@domain/user/repository/
searching for changes
abort: push creates new remote heads!
(did you forget to merge? use push -f to force)

为什么它说:“你忘了合并”? -我完成了合并。

它是坏的,强制推送,创造“新的远程头”?

如果是这样,我该如何避免这种情况?


更新:

我跑了“ hg merge ”再次得到了这样的输出:

5 files updated, 1 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon

于是我就“ hg up --clean ”,它报道:

6 files updated, 0 files merged, 1 files removed, 0 files unresolved

现在,当我键入“ hg heads ”,它说:

changeset:   11
tag:         tip
parent:      9
user:        eggdrop
date:        Tue Oct 20 16:27:44 2009 -0400
summary:     Machine A after merge

changeset:   10
parent:      7
user:        chickensoup
date:        Thu Oct 15 03:27:23 2009 -0400
summary:     Machine B changes to be pulled onto Machine A

Answer 1:

你跑hg up --clean 。 这意味着你解开了合并,这意味着你仍然需要合并。 当您合并你有一个悬而未决的文件。 重读你的错误信息:

5 files updated, 1 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon

你需要解决的合并冲突,然后完成与合并hg resolve 。 那么你就会有成功合并的两个头。

而要回答你的问题:没有,这不是坏的有两个远程头。 它只是意味着你需要将它们合并(最好是ASAP)你把什么都到远程服务器之前。

因此,要解决,只需运行hg merge ,解决了一个冲突,然后运行hg resolve



Answer 2:

第一:查看与更改hg log 。 下面并没有在我的情况有所帮助:

  • hg pullhg merge (你拉核对汞进入前)
  • 或: hg pull --rebase

但这种帮助。

hg merge [revision]

我发现,我需要明确地合并了一些修改看起来像头。



文章来源: Pushing to remote repository after merge “creates new remote heads” - is that bad?