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