Git clone / submodule获取错误'在存储库外“

时间:2017-09-25 04:03:07

标签: git recursion clone git-submodules

问题
我只是运行一个命令git clone --recursive <repo>来克隆带子模块的repo,它克隆了repo但是在克隆子模块时失败了。错误消息是

fatal: C:\Users\folderJobs: 'C:\Users\folderJobs' is outside repository

folderJobs是此回购的前一个文件夹名称,当时我没有子模块。

背景
我有一个用于将代码从机器A同步到机器B的仓库,机器B是一个带有Job Scheduler的服务器,用于运行几个项目的脚本。我之前手动维护了一个server_scripts项目,它是来自不同项目的所有脚本的集合。这不是一个完美的方法,所以我决定在这个server_scripts项目中添加所有项目作为子模块。我想每个我都需要更新到最新版本的脚本,只需要运行

git submodule update --recursive --remote

我在机器A(我的工作站)上进行了这些更改,然后我得到机器B,删除了folderJobs,因为我想要克隆一个全新的副本。我在删除git clone --recursive后运行folderJobs。上一个文件夹名称与项目名称不同,但这次我将使用与项目名称相同的文件夹名称。

我在我的机器A上尝试了相同的命令,它适用于我的文件系统的不同位置。

问题

我认为clone命令是从repo创建一个全新的文件夹,但似乎Git会在我的机器B上记住某些内容。

克隆时有没有人收到相同的错误消息?我花了半天谷歌搜索后不知道如何解决它。

感谢您提供任何信息。

- 补充资料

1&GT;我检查了两台机器的Git版本,差别很小,是什么原因?

$ git --version
git version 2.14.1.windows.1

$ git --version
git version 2.12.2.windows.1

2 - ;我试图在机器B上的其他文件夹中运行该命令,同样的错误

1 个答案:

答案 0 :(得分:0)

  

但似乎Git记得我机器B上的东西。

仔细检查回购邮件中.gitmodules文件的内容:您不希望其中包含任何绝对路径。

请确保您在C:\ Users中没有隐藏的.git文件夹。