在gitconfig

时间:2016-08-02 09:44:44

标签: git

在我们的团队中,我们有两个存储库,直到现在。一个是开发,另一个是生产。

因此我们将gitconfig全局文件配置为默认生产,并默认推送至开发。

现在我们引入了第三个名为Common的存储库。谁来克隆普通'应将默认推送配置为' Common'。由于我们已经配置了“开发”。作为全局的默认推送存储库,默认推送指向'开发'甚至在里面' Common'克隆时的存储库。

如何在gitconfig global中创建类似下面的内容?

if (cloned repository from Production)
then 
    default push is Development

if  (cloned repository from Common)
then 
    default push is Common

1 个答案:

答案 0 :(得分:1)

假设您的全局配置文件包含以下内容:

[remote "origin"]
pushurl = http://url/to/development

这是达到你想要的一种方式:

  1. Common存储库中定义一个指向与origin相同的URL的新远程:

    git remote add common http://url/to/common
    
  2. local 配置文件中的remote.pushDefault变量设置为common

    git config remote.pushDefault common 
    
  3. remote.pushDefault设置告诉Git使用指定的远程中定义的URL而不是origin

    此处来自documentation

      

    <强> remote.pushDefault
      默认情况下推送到的遥控器。覆盖   branch.<name>.remote适用于所有分支,并被覆盖   branch.<name>.pushRemote用于特定分支。

    在这种情况下,origin的推送URL在全局配置文件中定义,但Common存储库将使用在其自己的远程中定义的推送URL,名为common