git子模块更新的两个错误解决

来源:互联网 发布:淘宝的投诉电话有用吗 编辑:程序博客网 时间:2024/05/06 13:34

最近在clone faster-RCNN工程时,出现了两个问题,记录一下解决方法。

1. 问题描述

因为网络原因,我在Linux上clone这个仓库时,总是连接失败,导致我不得不在另一台电脑上clone。然后我将整个文件夹直接scp到linux上时,进行子模块的更新时,出现了第一个问题:

fatal: Not a git repositor

在解决第一个问题时,又出现了第二个问题:

fatal: Needed a single revision

下面是二者的解决方法。


2. Not a git repositor

问题的具体信息:

fatal: Not a git repository: caffe-fast-rcnn/F:/py-faster-rcnn/.git/modules/caffe-fast-rcnn

根据这个信息,可以知道,更新子模块时,不存在py-faster-rcnn这个仓库,其实这个子模块是有的,就在当前仓库工作目录下。

这个问题网上出现的很多,原因都认为是没有添加git仓库,也就是没有git init。
但是我这个错误的原因很明白,就是子模块仓库的.git配置信息有问题。我猜想是我的子模块路径在clone时配置的是windows电脑上的路径,所以导致在linux上更新时出现这个问题。

解决方法:
删除子模块仓库中的.git文件夹,然后git init(这个方法是不正确的)


2. Needed a single revision

因为对于1中错误我的脑残解决,导致我重新更新子模块时,又出现了下面这个问题。究其原因,还是由于子模块的配置问题。

在参考这篇博文摸我后,找到了解决方法。

很粗暴:
直接删除整个子模块的工作目录,然后重新更新,相当于重建子模块…..

git rm -rf caffe-fast-rcnngit submodule update --init --recursive

但是也很有效….

0 0