Как documented in the manual page, то --add
флага говорит git config
не перезаписывать любые существующие merge.ff
настроек, а для добавления нового в дополнении к любой существующей обстановке.
С merge.ff
не является многозначной конфигурацией, это, как правило, неправильно. (Фактически, из-за того, как Git сканирует конфигурационный файл, вновь добавленная настройка отменяет любые предыдущие настройки, а --add
добавляет в конце, поэтому она работает в любом случае.) Для однонаправленных элементов конфигурации, таких как merge.ff
, действительно должно быть просто одно запись в любом файле конфигурации.
(Думайте об этом, как, например, говоря Git не делать что-то, а затем говорю это, чтобы сделать что-то, а затем, сказав, что не делать вещь. Git просто подчиняется команде последний он слышал, в этот случай.)
Примером многозначного элемента конфигурации является линия fetch
для каждого пульта. Например, remote.origin.fetch
обычно составляет только +refs/heads/*:refs/remotes/origin/*
, но вы могли бы добавить+refs/notes/*:refs/notes/*
или +refs/notes/*:refs/notes/origin/*
для копирования заметок от origin
, например. (Вы бы не захотели удалить первую настройку, просто добавив вторую).
(Это не проблема, связанная с bash, а скорее вещь, специфичная для Git. Bash просто запускает команду с указанными аргументами и оставляет толкование этих аргументов к команде)
RTFM ссылка [ 'here'] (http://www.unix.com/man-page/linux/1/git-config/) ... – anishsane
Спасибо, что немного непонятно, не настолько продвинуты пользователи, хотя –