在预推钩中克隆GIT仓库时出现"工作树已经存在"的例外情况

use*_*408 5 git clone git-push githooks

我尝试在pre-push脚本(客户端钩子)中克隆我的本地git存储库.我得到了例外:

fatal: working tree '...' already exists.
Run Code Online (Sandbox Code Playgroud)

我不明白异常,因为我显然将repo克隆到另一个目录.

有任何想法吗?


我试过了:

unset GIT_DIR
cd ..
git clone ./TestTest/ /tmp/PrePushTestClone
Run Code Online (Sandbox Code Playgroud)

它以完全相同的方式失败:(

sob*_*evn 6

我有同样的问题,除了我正在处理pre-commit钩子.当尝试clone在当前存储库中的另一个repo时,文本错误如下:

致命的:工作树'.' 已经存在.

要解决此问题,我必须先添加此行clone:

unset GIT_WORK_TREE
Run Code Online (Sandbox Code Playgroud)

我在这里找到了这个解决方案:https://github.com/bower/bower/issues/1033


Von*_*onC 1

因为我显然将存储库克隆到另一个目录。

您的钩子可能会认为$GIT_DIR引用您当前的存储库,这会干扰git clone.

确保:

  • unset GIT_DIR在您的预推送脚本中
  • git clone在当前存储库文件夹之外的文件夹中