阅读(4116)
赞(11)
Mercurial集成:将推送更改到上游(Push)
2018-01-04 10:06:48 更新
将推送更改到上游(Push)
IntelliJ IDEA允许您通过按Enter或F2选择元素切换到编辑模式。
如果要使用Mercurial集成将推送更改到上游,请执行下列操作:
- 从主菜单中选择:VCS | Mercurial | Push。“推送提交(Push Commits)”对话框打开,显示所有Mercurial存储库(对于多存储库项目),并列出自上次推送以来每个存储库中当前分支中所做的所有提交。如果您有一个项目使用多个不同步控制的存储库,则默认情况下只选择当前存储库。有关如何启用同步存储库控制的详细信息,请参阅版本控制设置:Mercurial。
- 如有必要,你可以通过单击来修改远程存储库的路径。标签将变成一个文本字段,你可以键入新的路径或通过按下Ctrl+Space来调用完成。如果存储库中没有遥控器,则会出现“定义远程(Define remote)”链接。点击此链接并在打开的对话框中指定远程名称和URL。
- 如果您想在推送更改之前预览更改,请选择所需的提交。右侧窗格显示所选提交中包含的更改。您可以使用工具栏按钮来检查提交详细信息。如果提交的作者与当前用户不同,则此提交用星号标记。
- 如果要将活动书签与提交一起推送(默认情况下不会将它们发送到远程存储库),请选择“导出活动书签(Export Active Bookmarks)”选项。
- 点击"就绪"按钮,然后选择你想从下拉菜单中执行的操作: push或push--force。
您可以按下Ctrl+Q为所选的提交来显示额外的信息,例如提交作者、时间、哈希和提交信息。
如果选择整个存储库,则所有提交的所有文件都将列在右侧窗格中。
如果在多个提交中修改了同一文件,那么只有在选择这些提交或整个存储库时才会列出一次,如果您为该文件调用文件的差异查看器,所有更改都将被压缩到一起。
使用强制推送
当你运行push时,如果远程存储库发生了缺少的更改,并且要使用本地存储库副本进行覆盖,则Mercurial将拒绝完成该操作。通常情况下,您需要执行pull与远程进行同步,然后才能使用更改进行更新。
注意:使用--force将导致所有新的头被推到所有的分支上,这可能会给你的团队带来混乱。
该--force push命令将禁用此检查,并允许您覆盖远程存储库,从而删除其历史记录并导致数据丢失。
除非绝对必要(例如,如果您不小心推送了一些敏感数据),否则应该避免重新启动分支并修改其历史记录。
您需要执行--force push的另一种可能的情况是:当您推送一个推送的分支,然后将其推送到远程服务器。在这种情况下,当您尝试推送时,Mercurial将拒绝您的更改,因为远程参考不是本地参考的祖先。如果你在这种情况下执行“pull”操作,则最终会有两个分支的副本,然后需要合并。
如果您决定强制推出重新设计的分支,并且您正在团队中工作,请确保:
- 没有人pull你的分支,并做了一些本地更改
- 所有待处理的更改均已提交并推送
- 您有该分支的最新更改
从上游拉更改(Pull)
使用来自远程存储库(Pull)的更改刷新本地Mercurial存储库涉及检索更改并将其应用于本地数据。IntelliJ IDEA的Mercurial集成提供了指定强制Pull设置和自定义Pull过程的接口。
从远程存储库中提取更改
- 在主菜单上,选择:VCS | Mercurial | Pull Changesets。该Pull对话框打开。
- 指定源远程存储库所需的URL地址。