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