如果我们将错误的项目推送到另一个远程存储库会发生什么?
假设我们有一个名为 main
的项目,然后我们有一个名为 analytics
的项目,在 Bash 中,我们位于 analytics
工作目录并意外推送到 main
远程存储库,analytics
中的所有文件是否都会添加到 main
项目中,并且是否可逆?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您将收到来自 Mercurial 的投诉,并且推送将被中止。它看起来像这样:
Mercurial 根据根节点知道两个存储库是否相关。也就是说,如果存储库 A 和 B 共享公共根节点,则它们是相关的。
You will get a complaint from Mercurial and the push will be aborted. It looks like this:
Mercurial knows if two repositories are related based on their root nodes. That is, repositories A and B are related if they share a common root node.
如果
main
是本地存储库,您可以导航到main
并执行 histedit 删除有问题的提交。您也可以从基于服务器的main
进行 histedit,但如果任何其他用户创建了克隆,当他们推送到 main 时,他们将重新添加更改。histedit 是一个 Hg 扩展,不与 Hg 捆绑在一起。安装后,您可以像这样使用它:
哪里是有问题的提交的开始位置。 Histedit 将生成从顶部到顶端的提交列表。在此列表中,您可以向 histedit 指示您要保留提交、编辑评论或删除提交。 Drop 应该可以解决问题。
if
main
is a local repository, you can navigate tomain
and perform a histedit to drop the offending commits. You can histedit from a server-basedmain
as well, but if any other users have created clones, when they push to main they will re-add the changes.histedit is an Hg extension that doesn't come bundled with Hg. Once you install it you can use it like this:
where is the start of the offending commits. Histedit will generate a list of commits from up to the tip. In this list you can indicate to histedit that you want to keep the commit, edit the comment, or drop the commit. Drop should do the trick.