gpt4 book ai didi

mercurial - 在创建多头分支、 rebase 和多次 merge 后,如何在不创建新头的情况下推送

转载 作者:行者123 更新时间:2023-12-04 17:52:54 31 4
gpt4 key购买 nike

我对共享存储库的本地副本做了一系列愚蠢的步骤,我正在寻找一种方法来修复它。步骤是:

  • 我使用书签有一个开发分支的多个负责人,其他人使用:
    -o---o---o-----o---   <- dev branch
    \----1----1------ <- another head of the dev branch,
    where I committed stuff
  • 我创建了一个新的分支,仍然是本地的,一段时间后
      /---------------x   <- new branch
    -o---o---o-----o--- <- dev branch
    \----1----1------ <- another head of the dev branch,
    where I committed stuff
  • 对于一个只包含我的代码的头,我在另一个分支上做了一个 rebase
                       /-1'--1'--  <- rebase
    /---------------x <- new branch
    -o---o---o-----o--- <- dev branch
    \----1----1------ <- another head of the dev branch,
    where I committed stuff
  • 然后,我 merge 了 rebase,然后,在几次提交之后,我 merge 了 default
                       ----------d-\      <-default
    \
    /-1'--1'\ \
    /---------------x--------x--x-x-x-- <- new branch
    -o---o---o-----o---
    \----1----1------

  • 现在,我想将我的新分支推送到服务器( hg push --new-branch -b newBranch ),但我得到了 abort: push creates new remote head , 因为提交 1'属于开发分支。

    正确的做法是什么?我想避免创建这个额外的头。

    更新:

    每个请求,这是 hg heads 的输出:
    changeset:   839:f2033d695fcd  <- want to push this
    branch: newBranch
    tag: tip
    user: me
    date: Wed Oct 31 13:05:51 2012 +0100

    changeset: 826:7fde19d7f467
    branch: devBranch
    user: my-collegue
    date: Tue Oct 23 14:59:42 2012 +0200

    changeset: 820:23853bbf68df <- the part after rebase that got merged
    branch: devBranch
    user: me
    date: Mon Oct 22 15:36:26 2012 +0200

    changeset: 807:899344cfb145 <- obsolete (branch with 1's)
    branch: devBranch
    parent: 711:454f29c03fb1
    user: me
    date: Mon Oct 22 15:36:26 2012 +0200

    changeset: 712:d5e8a62a7f5f <- default, needs to stay
    parent: 648:2bbcc01aa191
    user: me
    date: Wed Aug 22 16:21:09 2012 +0200

    最佳答案

    您只能插入您对 mercurial 感兴趣的一个头。对你来说,这意味着要做:

    hg push -r f2033d695fcd

    如果目标仓库已更新,则需要拉取、 merge 和重新推送:
    hg pull
    hg up -r <remote head>
    hg merge -r f2033d695fcd
    hg ci
    hg push

    关于mercurial - 在创建多头分支、 rebase 和多次 merge 后,如何在不创建新头的情况下推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13155535/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com