gpt4 book ai didi

git - Mercurial : Match remote repo's changesets

转载 作者:行者123 更新时间:2023-12-05 09:24:58 26 4
gpt4 key购买 nike

我正从 Git 迁移到 HG,并且遇到了 HG 强加给我的一些限制:

我处于这样一种情况,我有一些错误的提交,我想清除掉。事实上,如果我可以匹配远程仓库的历史记录,那就太好了。

使用 git,这很容易:

git reset --hard origin/branch_name

但是我怎样才能用 Mercurial 做到这一点呢?据我所知,如果您不知道自己在做什么,移动“提示”可能会无意中产生匿名分支,这与 git 处理相同操作的方式非常不同。

最佳答案

一个经常被忽视的简单解决方案是将它们克隆掉:

hg clone origin new_clone
rm -rf repo_with_unwanted_commits

现在 new_clone 将您带回到远程仓库的顶端。如果您的克隆中有其他 提交但您还没有推送但仍然想要,您可以在本地克隆:

hg clone -r tip_you_want repo_with_unwanted_commits new_clone
rm -rf repo_with_unwanted_commits

现在 new_clone 包含您想要提交的所有内容,但不包括您想要丢弃的内容。在这种情况下,您只需要在 new_clone 的 hgrc 中设置 [paths] 以指向原始的 origin 仓库,然后您就回到了开始的地方。

这很简单,不需要扩展,但请注意,manojlds 的建议是使用 hg strip 会更快,而且您可以保留可能需要的任何未跟踪文件。在任何一种情况下,这仅在您尚未推送要删除的变更集的情况下才有效。如果您已经推送,唯一安全的选择是 hg backout

关于git - Mercurial : Match remote repo's changesets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7287959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com