如果没有指定GIT_DIR(或--git-dir = <directory>),则不允许Git错误"致命:GIT_WORK_TREE(或--work-tree = <directory>)"

jos*_*hlf 6 git environment-variables git-config git-init

我已经GIT_WORK_TREE设置.GIT_DIR设置为.git.当我运行时git init --bare,我收到以下错误:

致命的:( GIT_WORK_TREE--work-tree=<directory>)不指定GIT_DIR(或--git-dir=<directory>)

那是怎么回事?我怀疑它可能与GIT_DIR被设置有关.(GIT_DIR如果它指向当前工作目录,它可能会认为未设置?).无论如何,这样做会很好,所以每次我想初始化一个Git仓库时我都不必取消设置GIT_WORK_TREE.

Von*_*onC 5

此错误消息来自 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>)"),
Run Code Online (Sandbox Code Playgroud)

所以在Unbuntu上,GIT_WORK_TREE在做之前就取消了git init --bare.
请参阅" 为单个命令取消设置环境变量 ":

env -u GIT_WORK_TREE git init --bare
# or
GIT_WORK_TREE=  git init --bare
Run Code Online (Sandbox Code Playgroud)

我正在Windows上添加遥控器

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