运行git reset --hard时,暂存的更改仍然存在。同样适用于git checkout和git stash + git stash drop。这是怎么回事?

时间:2013-07-02 16:05:31

标签: git mercurial git-reset

所以这里有一些背景知识:我正在尝试使用from Mercurial to git移动存储库hg-fast-export,当我执行最后一步(git checkout HEAD)时,存储库中仍然存在更改。具体来说,它表示有4个已删除的文件不应删除。

当我尝试以下操作时,没有任何变化:

git reset --hard HEADgit checkout .git stash && git stash drop

我注意到的一件事很奇怪,当有人使用这个Mercurial仓库时,他们在T_T中间添加了一个git仓库。所以有趣的是当我运行git checkout HEAD时(但不是当我运行git checkout .时),.git子目录在索引中显示为已删除(很奇怪)。每当我运行git reset时,这些更改都会消失,但不会在没有一堆错误飞过无效路径的情况下消失。

最后,这使得存储库处于我第一次运行git checkout HEAD时所处的状态。 (至少git是一致的!)。

肯定有一部分将mercurial转换为git的人经历过这种情况。任何人都可以分享他们在git中持续存在的变化的经历吗?

1 个答案:

答案 0 :(得分:0)

这个问题的原因确实是mercurial存储库中有一个.git目录。

我解决它的方法是在执行快速导出转换之前运行带有文件映射的hg convert,不包括故障目录。

希望这可以帮助将来的某个人!