git push.default 的设置

June 27, 2014

操作系统与开发环境

在新装的 ubuntu 的笔记本上搭建开发环境,新装的软件也都是比较新的,在使用 git 的时候,就出现了一些新情况,以前没有看见的。虽然说是警告,作为一个名程序员,不应该 care warning 的,但是作为一名处女座的程序员,实在是不能容忍这个该死的 warning 总是出现在我提交代码的时候。于是看一下。

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

When push.default is set to 'matching', git will push local branches to the remote branches that already exist with the same name. 使用 matching 的话,就可能出现这种情况,你在当前某个分支工作,做一半的时候,来了个紧急的任务,你切换到其他分支去工作了,当你修改完代码后提交代码,这个时候可能会把其他分支的代码一块提交了,这可能不是你想要的。为了谨慎起见,我一直都是使用 simple 的方式提交,哪怕多出一些工作量,也要谨慎。

In Git 2.0, Git will default to the more conservative 'simple' behavior, which only pushes the current branch to the corresponding remote branch that 'git pull' uses to update the current branch.

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)

其实就是一个问题,push 的时候,提交多少个分支的代码。是当前的分支呢?还是所有本地和服务器名字一样的分支? simple 是 push 当前分支,也就是通过 git pull 命名更新的分支,而 matching 提交的是名字一样的分支,只有服务器存在名字一样的,都提交。

另外,还有个 current 的模式,如果 git 版本比较早的话,可以使用 current 模式。

--- EOF ---

评论

  1. aaftio aaftio

    程序猿是不应该care warning的?这是怎么解释的?

    1. warning 是警告,一般程序员只会关心 error,不关心 warning,因为出现 error 的时候表示程序出错了,出现 warning 的话并不影响程序。

      1. aaftio aaftio

        有warning多数是做法不符合规范,隐藏出现错误的可能,合格的程序员应该去规范下,不要给后人留坑,很多程序员的思想是只要能run就ok了,所以看到一个项目里waring的数量就知道这程序员的水平如何了。好的开源项目里基本不出现这种情况,所以“程序员不care waring”的说法,严重不能苟同

添加新评论