“git init” failed, what's wrong?

为君一笑 提交于 2019-12-03 06:15:42

Simple was added in git v1.7.11. If your git version is older, this option doesn't exist. Simply remove it from your conf and you'll be able to init repos.

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

This problem keeps coming up now that git 1.8 is out. Luckily the message from git is now very helpful:

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)

For example, emacs interface to git (vc) does not understand the argument 'simple', so you are better off using the argument 'matching' for the time being.

morefromalan

Try updating config to use matching instead of simple for push.default.

git config --global push.default matching

or

git config push.default matching
VonC

Note that it can be problematic identifying the issue, considering the problem is at:

  • line 7 (default = simple),
  • not line 8 (which here doesn't exist)

Solutions:

  • Changing the value at line 7 solves the issue (git config --global push.default matching)
  • removing the config can help too (git config --global --unset-all push.default)

But most importantly, starting git 2.2 (Q4 2014), the git config error line number will be accurate.
See commit b3b3f60, by Matthieu Moy (moy):

config.c: fix accuracy of line number in errors

If a callback returns a negative value to git_config*() family, they call die() while printing the line number and the file name.
Currently the printed line number is off by one, thus printing the wrong line number.

Make linenr point to the line we just parsed during the call to callback to get accurate line number in error messages.

Use the similar mode current instead of simple if you use a version of Git older than 1.7.11.

git config --global push.default current
jvriesem

Since I came across this when searching for the Malformed value for push.default: simple error I got when pushing/pulling, I figured other people may as well.

Here's a related question that provides more information for the passer-by (see my answer at the end for more links, too): GIT: Can't Push (Strange Config Issue)

Note in particular that this error seems to be caused by having an older version of Git somewhere. The best solution is to update to the latest version of Git on all machines.

If this is not possible for you, simply run the following commands (as mentioned by @morefromalan):

git config --global push.default matching

or

git config --global push.default upstream

to get rid of the error. This changes the default behavior of push operations as described HERE. You may have to to this for pull as well as push, but it seems to be working for me just having changed the default push behavior to upstream.

Good luck!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!