克隆仓库后的git状态显示文件已被删除

11

我已经将一个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

问题是什么?为什么我没有得到源文件?如果我在克隆后运行git checkout FMS_RE_ENGG,那么我就能得到它。为什么在克隆时它不会立即给出源文件呢?

4个回答

4
你可能已经使用了git fast-import来填充你的仓库与cvs数据。这将修改你的.git子目录中的数据结构,但不会创建一个可用的检出。因此,git status“认为”你已删除了所有文件,并且下一次提交将把它们从仓库中删除。
只需执行git reset --hard,将你的工作副本重置为来自主分支的干净检出即可。

3

尝试下面的命令。这对我有用。

git checkout -f HEAD

0

如果我理解正确,我认为您是通过基本的克隆命令来获取存储库的,例如

git clone gitRepositoryLink

当你运行时:
git checkout FMS_RE_ENGG

这是在GIT存储库中检出不同分支。如果您的源文件属于FMS_RE_ENGG分支而不是主分支,当您克隆存储库时,您将看不到您的源文件,因为您没有在FMS_RE_ENGG分支上工作。


克隆存储库后,我检查了存储库中的分支。只有主分支存在,没有FMS_RE_ENGG分支.... :) - thillaiselvan

0
在克隆完成后,git branch -a 会显示什么?问题可能在于 git clone 会询问远程分支当前所在的分支,并在克隆(本地)仓库中反映出来。
假设您的转换工具出了问题,或者远程仓库在其关于活动分支的想法方面出了问题。
我们需要更多的信息才能作出更好的猜测。

当我使用git branch -a时,它显示为 *主分支 remotes/origin/HEAD -> origin/master remotes/origin/master remotes/origin/origin - thillaiselvan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接