gpt4 book ai didi

mercurial - Mercurial 中的清晰修订历史记录

转载 作者:行者123 更新时间:2023-12-02 08:01:41 26 4
gpt4 key购买 nike

我是 Mercurial 的新手,我仍在尝试建立工作流程。

我克隆了一个远程存储库。然后我进行更改并提交到我的本地存储库。我想推送一个干净的修订历史。我不想推送一些可能只会使远程存储库变得困惑的修订(例如方法的拼写错误重命名、添加 javadoc、删除空格等)。这可能吗?

谢谢!

最佳答案

确实,在某些情况下,修剪/剥离/抛光变更集或分离私有(private)/正在进行的变更和公共(public)/就绪的变更是有意义的。以下是如何使用 Mercurial 处理此问题的一些建议:

  1. 如果您进行了一系列小的提交(这是一件好事),但您更喜欢将它们作为一个变更集发布(如果您提交了快照变更集,这很有意义——可能是矛盾的),请使用 collapse 扩展名:

    $ hg collapse -r <first-ref>:<last-ref> # both revs including
  2. 如果您只想将更改保留为私有(private),而其他更改想要发布,则 (a) 使用 mercurial 队列 进行私有(private)更改,或者 (b) 仅将您的更改提交为私有(private)更改自己的分支 ( named, bookmarked, or cloned ) 并定期将其与公共(public)分支 merge 。如果您交替提交私有(private)和公共(public)更改,则后者要求您经常在分支之间切换。

<小时/>

更新

为了说明选项 2.b,请考虑以下变更集图:

0--1--4--5---8--9   <= public/stable branch
\ \
2--3--6--7 <= private/dev branch

这意味着您已在 dev 分支上对 23 进行了更改。然后,您在 stable 分支上做了一些工作(修订版 45)。这些更改在 dev 中也有意义,因此您将它们 merge 到 dev(修订版 6)中。最后,您在dev(修订版7)中进行了另一项实验性更改,并在stable(修订版89)。您现在可以通过运行

来发布(即推送到远程存储库)在 stable中所做的更改
$ hg push -r 9     # or `-r stable` if the branch is named or bookmarked as such

所有私有(private)更改都将保留在本地!

请注意,如果您计划稍后完善您的私有(private)提交(例如,将它们折叠为一个变更集),则不得在稳定分支中 merge (折叠不能跨 merge 工作)。相反,rebase每当您希望它们与稳定中的最新更改同步时,您就可以私有(private)更改。

关于mercurial - Mercurial 中的清晰修订历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7413992/

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