转自:http://blog.csdn.net/daijingxin/article/details/51326715

在进行一次空仓库的提交时,我遇到了这个警告

警告如下:

warning: push.default 未设置,它的默认值将会在 Git 2.0 由 'matching'

修改为 'simple'。若要不再显示本信息并在其默认值改变后维持当前使用习惯,

进行如下设置:

git config --global push.default matching

若要不再显示本信息并从现在开始采用新的使用习惯,设置:

git config --global push.default simple

参见 'git help config' 并查找 'push.default' 以获取更多信息。
('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,
为保持兼容,请用 'current' 代替 'simple' 模式)

No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.

fatal: The remote end hung up unexpectedly

Gogs: Internal error
Failed to execute git command: exit status 128
error: 无法推送一些引用到 'git@softlab.sdut.edu.cn:daijingxin/addressbook.git'
git push.default设置

October 31, 2013GNU/LinuxDebian, Gitopenwares

当然首先我要先说明一下我电脑上git的版本,如下:


$ git --version

git version 1.8.4.rc3

之后我查找了一些关于git push.default设置的知识。

默认配置下,当使用git push命令而没有明确的指名本地分支和远程参考分支的情况下,会有如上的提示。

如果git push命令没有明确指定引用规格(refspec),也就是没有指定推送的源分支和目标分支,那么git会采用

push.default定义的动作。不同的值适用于不同的工作流程模式。

显而易见,主要是因为之前没有进行设置引用规格才出现的这种问题,现在我把push.default的可用值与配置方法贴在下面。


push.default可用的值如下:

1.nothing

不推送任何东西并有错误提示,除非明确指定分支引用规格。强制使用分支引用规格来避免可能潜在的错

2.current

推送当前分支到接收端名字相同的分支。

3.upstream

推送当前分支到上游@{upstream}。这个模式只适用于推送到与拉取数据相同的仓库,比如中央工作仓库流

4.simple

在中央仓库工作流程模式下,拒绝推送到上游与本地分支名字不同的分支。也就是只有本地分支名和上游分

支名字一致才可以推送,

就算是推送到不是拉取数据的远程仓库,只要名字相同也是可以的。在GIT 2.0中,simple将会是push.default的默认值。

simple只会推送本地当前分支。

5.matching

推送本地仓库和远程仓库所有名字相同的分支。

这是git当前版本的缺省值。

一般来说我们使用simple就可以进行正常的使用,如果严格一点儿可以用nothing。

配置push.default的命令如下:

git config --global push.default simple