Git错误提示:“致命错误:未指定GIT_DIR(或--git-dir=<directory>)时不允许使用 GIT_WORK_TREE(或--work-tree=<directory>)”。

8
我将 GIT_WORK_TREE 设置为 .,并将 GIT_DIR 设置为 .git。当我运行 git init --bare 时,会出现以下错误:

致命错误: 不指定 GIT_DIR(或 --git-dir=<directory>)时不允许使用 GIT_WORK_TREE(或 --work-tree=<directory>

这是怎么回事呢?我怀疑这可能与 GIT_DIR 被设置为 . 有关(也许它认为如果指向当前工作目录,则 GIT_DIR 未设置?)。无论如何,让其正确运行会很棒,这样我就不必每次想要初始化 Git 存储库时都取消设置 GIT_WORK_TREE。

我们的聊天记录详情,请作为日后参考:Details of our chat - user456814
1个回答

9
这个错误消息来自builtin/init-db.c
    /*
     * GIT_WORK_TREE makes sense only in conjunction with GIT_DIR
     * without --bare.  Catch the error early.
     */
    git_dir = getenv(GIT_DIR_ENVIRONMENT);
    work_tree = getenv(GIT_WORK_TREE_ENVIRONMENT);
    if ((!git_dir || is_bare_repository_cfg == 1) && work_tree)
        die(_("%s (or --work-tree=<directory>) not allowed without "
              "specifying %s (or --git-dir=<directory>)"),

在Ubuntu上,在执行git init --bare之前,取消设置GIT_WORK_TREE
请参阅"为单个命令取消环境变量的设置":

env -u GIT_WORK_TREE git init --bare
# or
GIT_WORK_TREE=  git init --bare

我完美地在Windows上添加了远程

git init --bare并不是"添加远程",因此您需要检查触发该错误消息的命令。


在Windows上,使用这里解释的cmd /V/ /C

cmd /V /C "set "GIT_WORK_TREE=" && git init --bare"

Windows 的答案是什么? - irvnriir
1
@irvnriir 我已经编辑答案并添加了Windows语法。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接