Оновлення (грудень 2012 р.)
git1.8.1rc1 тепер працює по-іншому:
"git config --get" використовується для діагностики наявності декількох визначень однієї і тієї ж змінної в одному і тому ж файлі конфігурації як помилки, але тепер він застосовує правило "останній виграш", що використовується внутрішньою логікою конфігурації .
Власне кажучи, це може бути регресія API, але очікується, що це ніхто не помітить на практиці.
Оригінальна відповідь (листопад 2010 р.)
Сторінка користувача git config згадує:
Імена змінних не чутливі до регістру і допускаються лише буквено-цифрові символи та -.
Для даної змінної може бути більше одного значення; тоді ми говоримо, що змінна є багатозначною .
Насправді такі налаштування конфігурації (з декількома можливими значеннями) називаються multivar
Як пропонує Джефромі, подивіться, в якому з 3 конфігураційних файлів у вас є більше одного user.name
рядка.
Ви можете запитувати кілька значень, наприклад:
git config --local --get-all user.name #local repo git config file)
git config --global --get-all user.name #user config file)
git config --system --get-all user.name #system git config file)
user.name
Потрібно виправити один конфігураційний файл, який відповідає на більше ніж одне значення.
З коментарів:
Вивчаючи файли "локальний", "глобальний" та "налаштування", я бачу лише один user.name
у глобальному.
Але git config --list
і git config --get-all user.name
дає мені це двічі
Як я вже згадував тут із Git 2.8 (березень 2016 р.) , Ти можеш використовувати (для перегляду всіх налаштувань:
git config -l --show-origin
Один ви бачите , де дубліката установка (локальна, глобальна система), ви можете використовувати git config [--local/--global/--system] --replace-all key value
, як в MB21 «и відповідь .
user.name
у глобальному. Алеgit config --list
іgit config --get-all user.name
дає мені це двічі. Але неgit config --local --get-all user.name
дає жодного.git config --global --get-all user.name
дає єдину.git config --system --get-all user.name
не дає жодного. Дивно !?