【问题标题】:Is it possible to reopen a closed branch in Mercurial?是否可以在 Mercurial 重新开放已关闭的分行?
【发布时间】:2011-05-05 04:51:07
【问题描述】:

我了解可以关闭 Mercurial 中的命名分支,使其不会出现在 hg branches 列表中:

hg commit --close-branch -m 'close badbranch, this approach never worked'

以后有需要可以重新开分店吗?

【问题讨论】:

  • 您应该简单地尝试一下,最好的学习方法是进行实验,而且由于 Hg 的存储库很便宜,所以就大胆尝试吧。
  • 肮脏的小秘密:Hg speak 中的“分支”只是“与提交相关的文本标签”的另一种说法。一个“分支”对于许多不相关的不同提交可以有许多不同的头部。

标签: mercurial


【解决方案1】:

您可以只hg update 到关闭的分支然后再做一个hg commit,它会自动重新打开。

closed 标志仅用于从 hg brancheshg heads 中过滤掉已关闭的分支,除非您使用 --closed 选项 - 它不会阻止您使用分支。

【讨论】:

  • 除非有实际提交的内容,否则提交不会执行任何操作,因此您可能需要进行无偿更改才能实现。
  • 感谢您指出这一点 - 我认为更改是通过提交来暗示的,​​但当然,如果您只是想删除关闭的标志,您不能不进行更改。
  • 一个标签足以使其可提交。
  • 这可以从命令行界面工作,我还没有尝试过,但是 TortoiseHg 不会让你更新到一个封闭的分支。如果您尝试这样做,更新按钮将被禁用。要使其正常工作,我必须在关闭变更集(实际上是父项)之前更新到分支,然后更新到关闭变更集。奇怪的是,当您更新到父级时,TortoiseHg 声称关闭的变更集(后代)是父级。不管怎样,只要你跳过正确的圈子,它就可以正常工作。
  • 使用它(通过 phpstorm 中的终端命令行)并且像魅力一样工作,谢谢
【解决方案2】:

您可以在“创建”分支时使用“-f”标志重新打开分支。

不,这个命令会创建一个同名的新分支。

忘记它已经关闭了。切换到分支,进行更改并提交。它将自动重新打开。完成后,您可以再次关闭它。

【讨论】:

  • 我认为,与 Git 不同,Mercurial 命名分支是永久性的,因此分支名称不能重复使用。我在困惑什么?我们正在谈论的同一个分支是否有多个负责人?
【解决方案3】:

尝试以下:

hg pull && hg update branch_name

现在对其中一个文件做一个小改动,然后提交它

 hg commit -m "minor change"

然后推一下

hg push -b . 

现在你应该可以正常工作了。

【讨论】:

    【解决方案4】:

    试试这个。

    执行前切换到关闭的分支。 (hg up closed_branch)

    汞柱

    触摸一个

    添加一个

    hg commit -m '重新打开关闭的分支'

    这将重新打开关闭的分支。

    【讨论】:

    • 这是在仓库中添加一个无用的空文件,是错误的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 2019-03-25
    • 2021-03-18
    • 2014-12-18
    • 2016-07-18
    • 1970-01-01
    相关资源
    最近更新 更多