Linux Git-致命:无法获取当前工作目录?
当我从回购中克隆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
文件存在。服务器正在运行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太棒了!我不敢相信我错过了这个。我会补充这个作为答案。