Linux Git-致命:无法获取当前工作目录?

Linux Git-致命:无法获取当前工作目录?,linux,git,bash,unix,gitlab,Linux,Git,Bash,Unix,Gitlab,当我从回购中克隆git时 致命:无法获取当前工作目录:没有此类文件或目录 我该怎么办?我检查了服务器,发现.git文件存在。服务器正在运行Gitlab实例。我已经用密钥正确地配置了ssh,并且我已经提交和克隆了一段时间,没有任何错误,这是突然发生的 FWIW,我正在用bash脚本进行git克隆 更新 这是我的bash脚本 for repo in $repos do git clone $repo /tmp/tmpdir/ # do stuff with /tmp/tmpdir/

当我从回购中克隆git时

致命:无法获取当前工作目录:没有此类文件或目录

我该怎么办?我检查了服务器,发现
.git
文件存在。服务器正在运行Gitlab实例。我已经用密钥正确地配置了
ssh
,并且我已经提交和克隆了一段时间,没有任何错误,这是突然发生的

FWIW,我正在用bash脚本进行git克隆


更新

这是我的bash脚本

for repo in $repos
do
   git clone $repo /tmp/tmpdir/
   # do stuff with /tmp/tmpdir/
   rm -rf /tmp/tmpdir/
done

对于第一个
repo
是可以的,但是当
for
进入第二个
repo
时,它失败了,并给出了上述
致命的
错误。

我猜在
do stuff
部分的某个地方,您将目录更改为
/tmp/tmpdir/
,以便在下一个循环中,当前工作目录不再存在。修复方法是在删除
/tmp/tmdir/
目录之前,将目录更改为
/tmp/
(或者真正的任何地方)。

在我的例子中,这是由从本地git repo的子目录发出“git克隆”引起的。在克隆新的repo之前,我必须将cd刻录到另一个目录。

bash脚本是否删除任何目录?听起来好像你已经删除了工作目录。工作目录就是运行脚本的地方,除非脚本更改了目录。你是如何调用脚本的?大概是在你的
do stuff
中的某个地方,你将
cd
放入
/tmp/tmpdir/
?如果是这样,请在
rm
行之前添加
cd/tmp/
。@DaveMorrissey太棒了!我不敢相信我错过了这个。我会补充这个作为答案。