Bundle提交/保持提交私有

时间:2012-08-28 10:25:13

标签: git mercurial

我想在推送时保留一些私有提交,所以我希望它们被捆绑到远程端的一个大提交中。在当地,他们应该继续分裂。

用例例如是静态博客上的工作。草案步骤应该在本地提交和跟踪,但在推送时我只想发布已发布的版本。

将接受git和/或mercurial的解决方案。

2 个答案:

答案 0 :(得分:5)

在Mercurial 2.1及更高版本中,您可以使用phases将变更集标记为“机密”。这会将所有传出的变更集标记为机密:

$ hg phase -f --secret "outgoing()"

默认情况下不会推送或拉出秘密变更集,因此在该命令之后不会有任何外发变更集 - 根据需要进行调整以将正确的变更集标记为机密。

您还说您希望将更改集作为远程存储库中的一个大提交。为此,您可以使用与Mercurial 2.3及更高版本捆绑在一起的histedit extension。使用--keep标记,以便在折叠它们时不会删除原始更改集。

答案 1 :(得分:4)

这个想法是在专用分支上进行提交,但是git merge --squashmaster(或者你想要推送的任何其他公共分支)上进行提交,因为它会产生一个大的提交。
然后,您可以在远程仓库上推送master

请参阅" In git, what is the difference between merge --squash and rebase?"