在预推钩中克隆GIT仓库时,“工作树已存在”异常

时间:2015-12-11 13:31:08

标签: git clone githooks git-push

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

fatal: working tree '...' already exists.

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

有什么想法吗?

我试过了:

unset GIT_DIR
cd ..
git clone ./TestTest/ /tmp/PrePushTestClone

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

3 个答案:

答案 0 :(得分:6)

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

  

致命:工作树'。'已经存在。

要解决此问题,我必须在clone之前添加此行:

unset GIT_WORK_TREE

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

答案 1 :(得分:2)

也发生在我身上。我意识到我在git clone的bash会话中运行了git rebase -i,该会话在环境中设置了GIT_DIR和GIT_WORK_TREE。 退出bash会话解决了该问题...

答案 2 :(得分:1)

  

因为我显然将repo克隆到另一个目录。

您的摘要可能会将$GIT_DIR视为引用您当前的回购,这会干扰git clone

请务必:

    您在预推送脚本中
  • unset GIT_DIR
  • git clone位于外部当前仓库文件夹
  • 的文件夹中