Я настраиваю CI для проекта C #, размещенного на GitHub, в частном репозитории.
Git установлен на главном компьютере с CentOS, MSBuild - на подчиненных окнах.

Я создал учетную запись на GitHub и добавил ее в свое личное репо.
Когда я настраиваю систему управления версиями для Jenkins, я ввел URL-адрес (как https://github.com/.../repo.git) и ввел учетные данные с новой учетной записью.

Дженкинс сообщает:

Failed to connect to repository : Command "git config --local credential.helper store --file=/tmp/git2956041026506359040.credentials" returned status code 129:
stdout: 
stderr: error: unknown option `local'
usage: git config [options]

Config file location
    --global              use global config file
    --system              use system config file
    -f, --file <FILE>     use given config file

Action
    --get                 get value: name [value-regex]
    --get-all             get all values: key [value-regex]
    --get-regexp          get values for regexp: name-regex [value-regex]
    --replace-all         replace all matching variables: name value [value_regex]
    --add                 adds a new variable: name value
    --unset               removes a variable: name [value-regex]
    --unset-all           removes all matches: name [value-regex]
    --rename-section      rename section: old-name new-name
    --remove-section      remove a section: name
    -l, --list            list all
    -e, --edit            opens an editor
    --get-color <slot>    find the color configured: [default]
    --get-colorbool <slot>
                          find the color setting: [stdout-is-tty]

Type
    --bool                value is "true" or "false"
    --int                 value is decimal number
    --bool-or-int         value is --bool or --int
    --path                value is a path (file or directory name)

Other
    -z, --null            terminate values with NUL byte

Если я вхожу в master и пробую ту же команду на корневой консоли, я получаю ту же ошибку, --local не подходит для git config.

12
user3043457 16 Апр 2014 в 12:36

3 ответа

Лучший ответ

Проблема заключалась в том, что Git устарел, а версия, поставляемая с CentOS, не поддерживала параметр --local для git config.

Обновление git до версии 1.7.12 решило проблему.

14
user3043457 16 Апр 2014 в 10:21

Похоже, что jekins использует git по умолчанию в разделе /usr/bin. Проверьте свой /usr/bin/git и убедитесь, что у него есть опция --local.

0
Luryson Leou 20 Июн 2017 в 08:11

Теперь (2017 г.) не только --local является допустимым вариантом для git config (поскольку несколько лет назад), его сообщение об ошибке будет более точным.

См. commit 3d7dd2d (21 мая 2017 г.) от Рамси Джонс (` `).
См. совершить 25cd291, совершить 588a538, d819374 (13 мая 2017 г.), автор: Джефф Кинг (peff).
(объединено Junio ​​C Hamano - gitster - в commit 220c6a7, 29 мая 2017 г.)

config: пожаловаться на --local вне репозитория git

Параметр "--local" инструктирует git-config прочитать или изменить конфигурацию уровня репозитория. Это не имеет никакого смысла, если вы на самом деле не в репозитории.

Старые версии Git слепо пытались читать или писать ".git/config".
При чтении это приведет к тихому сбой, так как не было конфигурации для чтения (и, следовательно, нет соответствующее значение конфигурации).
Запись, как правило, приводила к сбою, поскольку ".git" вряд ли могло существовать.
Но поскольку b1ef400 (setup_git_env: избегайте слепого отката до ".git ", 2016-10-20, Git 2.13), мы улавливаем это при вызове git_pathdup() и умереть с утверждением.

Смерть - это правильный поступок, но мы должны своевременно выявить проблему и дать более понятное сообщение об ошибке.

Перед:

vonc@xxC:\Users\vonc\prog\xxx
> git config --local -l
fatal: BUG: setup_git_env called without repository

После (Git 2.14, третий квартал 2017 г.)

vonc@xxC:\Users\vonc\prog\xxx
> git config --local -l
fatal: BUG: --local can only be used inside a git repository

И это относится и к git config --worktree с Git 2.29 (4 квартал 2020 г.)

См. фиксацию 378fe5f из Матеус Таварес (matheustavares)
(объединено Junio ​​C Hamano - gitster - в commit 80cacae, 19 сентября 2020 г.)

config: пожаловаться на --worktree вне репозитория git

Запуск git config --worktree вне репозитория git вызывает ОШИБКУ () при попытке перечислить рабочие деревья.
Давайте поймем эту ошибку раньше и die() с более дружелюбным сообщением.

Вместо просто --local can only be used inside a git repository теперь вы увидите:

--worktree can only be used inside a git repository
0
VonC 19 Сен 2020 в 15:13