所以这里有一些背景:我试图使用hg快速导出将存储库从Mercurial移动到git,当我执行最后一步(git checkout HEAD
)时,存储库中仍然存在更改。具体来说,它说有4个被删除的文件不应该被删除。
当我尝试以下操作时,没有任何变化:
git reset --hard HEAD
、git checkout .
、git stash && git stash drop
。
我注意到的一件奇怪的事情是,当有人使用这个Mercurial回购时,他们在中间添加了一个git回购T_T。因此,有趣的是,当我运行git checkout HEAD
时(但不是当我运行git checkout .
时),.git
子目录在索引中显示为已删除(奇怪)。每当我运行git reset
时,这些更改就会消失,但在无效路径附近会出现一堆错误。
最后,这使存储库处于我第一次运行git checkout HEAD
时的状态。(至少git是一致的!)。
当然,将mercurial转换为git的一部分人也经历过这种情况。有人能分享他们在git内部持续变化的经历吗?
这个问题的原因实际上是mercurial存储库中有一个.git目录。
我解决这个问题的方法是在进行快速导出转换之前,使用排除故障目录的文件映射运行hg convert
。
希望这对将来的人有所帮助!