“git init”失败了,怎么了?

时间:2012-09-06 07:15:14

标签: git google-code git-config

此问题与“Bad git config file .git/config”不同,因为它在使用git init时失败。

/home/mirror/.gitconfig似乎没有错:

[mirror@home 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 = xxxxxx@gmail.com
        name = xxxxx
[push]
        default = simple

6 个答案:

答案 0 :(得分:21)

在git v1.7.11中添加了Simple。如果您的git版本较旧,则此选项不存在。只需从您的conf中删除它,您就可以初始化。

请参阅https://raw.github.com/git/git/master/Documentation/RelNotes/1.7.11.txt

答案 1 :(得分:6)

现在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)

例如,对git(vc)的emacs接口不理解参数'simple',所以最好暂时使用参数'matching'。

答案 2 :(得分:5)

尝试更新配置以使用matching代替simple push.default

git config --global push.default matching

git config push.default matching

答案 3 :(得分:1)

请注意,考虑到问题出在以下情况,确定问题可能会出现问题:

  • 第7行(default = simple),
  • 第8行(此处不存在)

解决方案:

  • 更改第7行的值可解决问题(git config --global push.default matching
  • removing the config也可以提供帮助(git config --global --unset-all push.default

但最重要的是,启动git 2.2(2014年第4季度), git config错误行号将是准确的
请参阅commit b3b3f60Matthieu Moy (moy)

config.c:修正错误中行号的准确性

  

如果回调向git_config*()系列返回否定值,则会在打印行号和文件名时调用die()
  目前打印的行号被一个关闭,因此打印错误的行号。

     

使linenr指向我们刚刚在调用回调期间解析的行,以获取错误消息中的准确行号。

答案 4 :(得分:1)

如果您使用的是早于1.7.11的Git版本,请使用类似模式current代替simple

git config --global push.default current

答案 5 :(得分:0)

因为我在搜索推送/拉动时遇到的Malformed value for push.default: simple错误时遇到了这个错误,我想其他人也可能。

这是一个相关的问题,为路人提供了更多信息(最后请参阅我的答案以获取更多链接): GIT: Can't Push (Strange Config Issue)

请特别注意,此错误似乎是由某个地方的旧版Git引起的。最好的解决方案是在所有机器上更新到最新版本的Git。

如果您无法做到这一点,只需运行以下命令(如@morefromalan所述):

git config --global push.default matching

git config --global push.default upstream

摆脱错误。这会更改push操作的默认行为,如HERE所述。您可能pull以及push必须这样做,但似乎只是将默认的push行为更改为{{} 1}}。

祝你好运!