将更改推送到 Mercurial 上游(Push)
转到 。
打开的窗口显示所有 Mercurial 仓库(适用于多仓库项目),并列出自上次推送以来在每个仓库的当前分支中所做的所有提交。
如果您的项目使用多个不同步控制的仓库,则默认情况下仅选择当前仓库。 如需了解有关启用同步仓库控制的更多信息,请参见 版本控制设置:Mercurial。
如果必要,您可以通过点击来修改远程存储库的路径。 标签会变成一个文本字段,您可以在其中键入新路径或按 Ctrl+Space 调用自动完成。
如果仓库中没有远程库,则会出现 定义 remote 链接。 点击此链接,并在打开的对话框中指定远程名称和 URL。
如果您想在推送更改之前预览它们,请选择所需的提交。 右侧窗格显示所选提交中包含的更改。 您可以使用工具栏按钮进行操作。
如果您希望在提交时推送活动书签(默认情况下,它们不会发送到远程仓库),请选中 导出活动书签 选项。
请点击 推送 按钮,选择您想要执行的操作从下拉菜单中:
push或push --force。
强制推送
当您运行 push 时,如果远程仓库中有您缺失的更改,并且您将用本地副本覆盖它们,Mercurial 将拒绝完成操作。 通常,您需要执行 pull 以在使用更改更新远程之前进行同步。
--force push 命令会禁用此检查,并允许您覆盖远程存储库,从而擦除其历史记录并导致数据丢失。
您仍然可能需要执行 --force push 的一种情形是,您在推送的分支上进行 rebase 操作,然后希望将其推送到远程服务器。 在这种情况下,当您尝试推送时,Mercurial 会拒绝您的更改,因为远程引用不是本地引用的祖先。 如果在这种情况下执行 pull ,您将最终得到该分支的两个副本,之后需要将它们合并。
如果您决定强制推送rebase过的分支并且您在团队中工作,请确保:
没有人拉取您的分支并对其进行本地更改
所有待处理的更改已提交并推送
您拥有该分支的最新更改