1

目标是这样做之后git clone git@somewhere:something.git

结果something/.git/config将包含

[push]
    default = tracking

不需要克隆人这样做cd something; git config push.default tracking,他/她不会在没有参数的情况下推送所有分支(不,没有人阅读自述文件)。

4

1 回答 1

1

由于很难在下游或客户端执行策略(这很危险,正如knittl评论的那样),即将推出的Git 2.0认识到这一事实并将更改默认推送策略。

(关于这个日期的讨论从2012年初开始,如“git push当前分支”所示)

它将从当前的默认值开始:

matching- 将所有具有相同名称的分支推入两端。
这适用于那些将所有分支准备成可发布的形状,然后用一个命令将它们推出的人。
它不适合推送到由多个用户共享的存储库,因为如果其他用户更新了分支,本地停滞的分支将尝试非快进推送。
这是目前的默认值,但 Git 2.0 会将默认值更改为simple.

到新的,叫做“ simple”:

upstream- 将当前分支推送到其上游分支。
这样,git push将更新与 git pull 合并的远程 ref 相同的远程 ref,使推送和拉取对称。branch.<name>.merge如何配置上游分支见“ ”。

simple- 与上游类似,但如果上游分支的名称与本地分支不同,则拒绝推送。
这是最安全的选择,非常适合初学者。它将成为 Git 2.0 中的默认设置。

于 2012-08-02T18:01:25.843 回答