从“ fetch --all”排除远程git

时间:2019-02-28 19:36:06

标签: git git-remote

是否可以在git中配置仅在其名称正式请求时才获取的远程对象?因此它们将被排除在fetch --all之类的操作之外。

想象一个休眠的(禁用的或类似的)远程名为“ my-no-auto-fetch-remote”:

$ git fetch my-no-auto-fetch-remote

(已获取)

$ git fetch --all

(不应获取my-no-auto-fetch-remote)

3 个答案:

答案 0 :(得分:2)

不是,不是:--all表示 all 。但是您可以 定义远程,然后使用git remote update更新组。将通常不可用的遥控器放入不是默认组的组。有关详细信息,请参见the git remote documentation

({git fetch也适用于团体,我只是喜欢在与团体打交道时使用git remote,而对于一个个人遥控器git fetch则使用$Groups = Get-Content -Path $someFile foreach ($Group in $Groups) { (Get-ADGroup $Group -Properties *).Member.Count } 。 ...)

答案 1 :(得分:1)

遥控器的配置skipFetchAll

摘自https://git-scm.com/docs/git-config/1.9.2

上的文档
  

远程..skipFetchAll

     

如果为true,此遥控器将被跳过   使用git-fetch [1]或update的update子命令进行更新时,默认   git-remote [1]。

由于添加或更改遥控器时命令行中没有选项,因此我不得不将该配置编辑.git/config文件,如下:

[remote "my-remote"]
        url = git@the-repository-url
        fetch = +refs/heads/*:refs/remotes/my-remote/*
        skipFetchAll = true

答案 2 :(得分:0)

我会用bash技巧来做到这一点:

git remote | grep -v the-repo-i-dont-want | xargs git fetch

可能将其转换为脚本或git别名。