克隆存储库的 Git 状态显示文件已删除



>我已经将cvs存储库迁移到git存储库,它位于服务器中。在我的本地,我试图克隆该存储库。它被克隆了。但是当我检查 git 状态时,它显示的结果如下,例如。

$ cd FMS_RE_ENGG/
$ git status

#   deleted:    FMS_RE_ENGG/Gemfile
#   deleted:    FMS_RE_ENGG/Gemfile.lock
#   deleted:    FMS_RE_ENGG/PACKAGING/CONFIG/fms-frontend.ini
#   deleted:    FMS_RE_ENGG/PACKAGING/DEBIAN/postinst
#   deleted:    FMS_RE_ENGG/PACKAGING/DEBIAN/postrm
#   deleted:    FMS_RE_ENGG/PACKAGING/DEBIAN/preinst
#   deleted:    FMS_RE_ENGG/PACKAGING/DEBIAN/prerm
#   deleted:    FMS_RE_ENGG/PACKAGING/DEBIAN/templates

等。

问题出在哪里?为什么我没有收到源文件?如果我在克隆后FMS_RE_ENGG运行 git 结帐,那么我就可以得到它。为什么它在克隆本身时不提供源文件?

您可能已经使用 git fast-import 来用 cvs 数据填充您的存储库。这将修改 .git 子目录中的数据结构,但不会创建有效的结帐。

因此,git 状态"认为"您已经删除了所有文件,并且下一次提交将将它们从存储库中删除。

只需执行 git 重置 - 很难将您的工作副本重置为从主分支的干净结帐。

只需尝试以下命令。它对我有用。

git checkout -f HEAD

如果我理解正确,我假设您是通过基本的克隆命令抓取存储库的,例如

git clone gitRepositoryLink

运行时:

git checkout FMS_RE_ENGG

这是签出 GIT 存储库中的其他分支。如果源文件是FMS_RE_ENGG分支的一部分,但不是主分支的一部分,则克隆存储库时,将看不到源文件,因为您没有在FMS_RE_ENGG分支上工作。

克隆完成后git branch -a显示什么? 问题可能在于git clone询问远程哪个分支作为其当前分支,并将其反映在克隆的(本地)存储库中。

据说要么您的转换工具搞砸了某些东西,要么远程存储库在其活动分支的想法方面以某种方式搞砸了。

我们需要您提供更多信息,以便做出更好的猜测。

最新更新