如果我想将更改从本地分支拉到我的主流分支,并且不希望主分支中本地分支的临时变更集历史记录。我们怎么做?
问问题
73 次
2 回答
0
由于推送时不可能省略变更集,因此您可以尝试此解决方案,完全不清楚,但您可以这样做。想象一下你的本地 hg 日志是这样的:
- 5:顶部(您希望在主分支中拥有此变更集)
- 4:(本地变更集)
- 3:(本地变更集)
- 2:(本地变更集)
- 1:更改集已经在主分支中的内容,应该是从本地新推送的更改集的父级
如果我有这个问题,我会更新到 1,然后从 5 恢复所有更改(所以我将拥有与 5 相同的工作目录)然后临时提交(6),这个临时提交(与更改集 5 相同)我会推送进入主要。在您的本地,您可以合并 5 和 6 并继续,但总会有从本地到 main 的传出变更集。命令如下所示:
- 汞上升 1
- hg revert -r 5 -a (现在您的工作目录与 5 相同)
- hg ci -m "将在主分支中显示的提交名称"
- hg push -r 6 main_branch_path
但是正确的解决方案是,当我们以这种方式使用它时,将所有开发变更集也保留在 main 中。高温高压
于 2012-10-16T07:07:38.590 回答
0
- 您无法在推送到服务器时重写变更集历史记录
- 您可以在推送之前在本地存储库中重写本地历史记录
- 您可以执行部分推送并仅发送特定的分支
hg push -b ...
,而不是整个回购
1-3个手段的巩固
- 你必须有新的、单独的可推送分支
- 您将合并到此分支并折叠它的历史记录(MQ 补丁,添加扩展名:histedit|collapse)
- 只推送这个分支
于 2012-10-15T16:27:46.200 回答