Ошибка Git "фатальная: GIT_WORK_TREE (или --work-tree =<каталог>) не допускается без указания GIT_DIR (или --git-dir =<каталог>)"

Я имею GIT_WORK_TREE установлен в . а также GIT_DIR установлен в .git, Когда я бегу git init --bareЯ получаю следующую ошибку:

со смертельным исходом: GIT_WORK_TREE (или же --work-tree=<directory>) не допускается без указания GIT_DIR (или же --git-dir=<directory>)

Что с этим? Я подозреваю, что это может иметь какое-то отношение к GIT_DIR устанавливается на . (возможно это считает GIT_DIR unset, если он указывает на текущий рабочий каталог?). В любом случае, было бы замечательно, если бы он вел себя правильно, поэтому мне не нужно сбрасывать GIT_WORK_TREE каждый раз, когда я хочу инициализировать репозиторий Git.

1 ответ

Это сообщение об ошибке приходит от 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, unset 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 это не "добавление удаленного", поэтому вам нужно проверить, какая команда вызывает это сообщение об ошибке.

Другие вопросы по тегам