将分支添加到远程获取的分支集中

Add branch to the set of remote fetched branches

我有一个遥控器,我只能从中获取一个分支:

[remote "upstream"]
    url = ....
    fetch = +refs/heads/foo:refs/remotes/upstream/foo

我想将另一个分支添加到我从同一个远程获取的分支集中。

我知道我可以编辑本地 .git/config 并手动添加第二个获取子句:

[remote "upstream"]
    url = ....
    fetch = +refs/heads/foo:refs/remotes/upstream/foo
    fetch = +refs/heads/bar:refs/remotes/upstream/bar

因此,我可以在不编辑配置文件的情况下调用 git config 魔法来做同样的事情:

 git config --local --add remote.upstream.fetch +refs/heads/bar:+refs/remotes/origin/bar

这两种方法(特别是在 answers to another question 中提到的)对我来说看起来都很低级。是否有更高级别的 git 命令将分支添加到远程引用集,就像最初用于创建单个分支引用的 remote add -t <branch> .... 一样?

据我所知没有。

最简单的方法是自己编写 "high level command" 脚本,在 bash 中(甚至在 Windows 中),将其命名为 git-addfetchbr.sh(存储在您的任何位置) $PATH).
这将允许您键入:

git addfetchbr upstream bar bar

该脚本将执行以下操作:

git config --local --add remote..fetch +refs/heads/:+refs/remotes//