【问题标题】:git config that gets cloned被克隆的 git config
【发布时间】:2012-07-31 17:46:55
【问题描述】:

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

生成的something/.git/config 将包含

[push]
    default = tracking

无需克隆人执行cd something; git config push.default tracking,因此他/她在无参数推送时不会意外推送所有分支(不,没有人阅读自述文件)。

【问题讨论】:

  • 您可以提供一个自动设置选项的 shell 脚本。 Git 没有提供这样做的方法,因为配置文件可能包含危险的别名或选项。
  • @knittl 脚本可以包含在 repo 中,并在 repo 被克隆时自动运行吗?像后克隆钩子之类的?
  • 您可以将它包含在存储库中,但不能让它自动执行。想想这会导致的安全隐患!

标签: git


【解决方案1】:

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

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

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

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

给新的,叫做“simple”:

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

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

【讨论】:

    猜你喜欢
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 2015-09-23
    • 1970-01-01
    • 2016-09-22
    • 2011-12-24
    相关资源
    最近更新 更多