将更改推送到 Mercurial 上游(推送)
转到 。
推送提交对话框将打开,显示所有 Mercurial 版本库(适用于多版本库项目),并列出每个版本库中自上次推送以来在当前分支上所做的所有提交。
如果您的项目使用多个未同步控制的版本库,则默认仅选中当前版本库。 有关启用同步版本库控制的详细信息,请参阅 版本控制设置:Mercurial。
如有需要,您可以单击远程版本库路径来进行修改。 标签将变为文本字段,您可以在其中输入新路径,或按 Ctrl+Space 启用补全。
如果版本库中没有远程库,则会显示 定义远程 链接。 单击该链接,并在打开的对话框中指定远程名称和 URL。
如果您希望在推送前预览更改,请选择所需的提交。 右侧面板将显示所选提交中包含的更改。 您可以使用工具栏按钮 查看提交详细信息。
如果您希望在提交时一并推送活动书签(默认不会发送到远程版本库),请选择 导出活动书签 选项。
准备就绪后,单击 推送 按钮,并从下拉菜单中选择要执行的操作:
push或push --force。
强制推送
当运行 push 时,如果远程版本库包含您本地缺少、并将被您覆盖的更改,Mercurial 将拒绝完成操作。 通常,您需要先执行 pull 与远程同步,然后再推送您的更改。
--force push 命令将禁用该检查并允许覆盖远程版本库,从而清除其历史记录并导致数据丢失。
在某些情况下,您可能仍需要执行 --force push ,例如您对已推送的分支进行 rebase 后希望重新推送到远程服务器。 在此情况下,尝试推送时,Mercurial 将拒绝您的更改,因为远程引用不是本地引用的祖先。 如果在此情况下执行 pull ,将会生成该分支的两个副本,您需要将其合并。
如果您决定强制推送已 rebase 的分支,并且团队协作开发,请确保:
没有其他人拉取了您的分支并进行过本地修改
所有挂起更改都已提交并推送
您拥有该分支的最新更改