"git init" не удалось, что случилось? - программирование
Подтвердить что ты не робот

"git init" не удалось, что случилось?

Эта проблема не такая, как "Плохой git файл конфигурации .git/config", поскольку она не удалась при использовании git init.

Кажется, нет ничего плохого в /home/mirror/.gitconfig:

[[email protected] php]$ git init
error: Malformed value for push.default: simple
error: Must be one of nothing, matching, tracking or current.
fatal: bad config file line 8 in /home/mirror/.gitconfig

Это содержимое ~/ .gitignore:

cat ~/.gitconfig
[alias]
        lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
[user]
        email = [email protected]
        name = xxxxx
[push]
        default = simple
4b9b3361

Ответ 1

Простой был добавлен в git v1.7.11. Если ваша версия git старше, эта опция не существует. Просто удалите его из своего conf, и вы сможете инициализировать репозиции.

См. https://raw.github.com/git/git/master/Documentation/RelNotes/1.7.11.txt

Ответ 2

Эта проблема продолжает появляться, когда git 1.8 отсутствует. К счастью, сообщение из git теперь очень полезно:

warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

   git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

   git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

Например, интерфейс emacs для git (vc) не понимает аргумент "простой", поэтому вам лучше использовать аргумент "соответствие" на данный момент.

Ответ 3

Попробуйте обновить конфигурацию, чтобы использовать matching вместо simple для push.default.

git config --global push.default matching

или

git config push.default matching

Ответ 4

Обратите внимание, что проблема может быть проблематичной, учитывая проблему:

  • строка 7 (default = simple),
  • не строка 8 (которая здесь не существует)

Решения:

  • Изменение значения в строке 7 разрешает проблему (git config --global push.default matching)
  • удаление конфигурации также может помочь (git config --global --unset-all push.default)

Но самое главное, начиная с git 2.2 (Q4 2014), номер строки ошибки конфигурации git будет точным.
См. commit b3b3f60, Matthieu Moy (moy):

config.c: исправить точность номера строки при ошибках

Если обратный вызов возвращает отрицательное значение в семейство git_config*(), они вызывают die() при печати номера строки и имени файла.
В настоящее время номер напечатанной строки отключен на единицу, поэтому печатается неправильный номер строки.

Сделать linenr указывать на строку, которую мы просто разобрали во время вызова обратного вызова, чтобы получить точный номер строки в сообщениях об ошибках.

Ответ 5

Так как я натолкнулся на это при поиске ошибки Malformed value for push.default: simple, которую я получил при нажатии/вытягивании, я подумал, что и другие люди могут.

Вот связанный вопрос, который дает больше информации для прохожего (см. мой ответ в конце и для других ссылок): GIT: Невозможно нажать (проблема с Strange Config Issue)

Обратите внимание, в частности, что эта ошибка, по-видимому, вызвана тем, что у нее более старая версия Git. Лучшим решением является обновление до последней версии Git на всех машинах.

Если это невозможно для вас, просто запустите следующие команды (как указано @morefromalan):

git config --global push.default matching

или

git config --global push.default upstream

чтобы избавиться от ошибки. Это изменяет поведение по умолчанию операций push, как описано ЗДЕСЬ. Возможно, вам придется это сделать для pull, а также push, но, похоже, для меня это просто изменило поведение по умолчанию push на upstream.

Удачи!

Ответ 6

Используйте аналогичный режим current вместо simple, если вы используете версию Git старше 1.7.11.

git config --global push.default current