6

我已经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。

4

1 回答 1

6

此错误消息来自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>)"),

所以在 Unbuntu 上,GIT_WORK_TREE在做git init --bare.
请参阅“取消设置单个命令的环境变量”:

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"
于 2015-08-04T07:01:05.423 回答