目前,当我拉动时,我会从所有分支机构进行更改:
$ git pull
remote: ...
Unpacking objects: ...
From ssh://github.com/...
a69d94d..a2019da master -> origin/master
b684d4a..b8819dc develop -> origin/develop
+ 263c644..f1c1894 gh-pages -> origin/gh-pages (forced update)
Updating a69d94d..a2019da
我喜欢这种行为,但我不需要从gh-pages
分支获取内容,因为它只包含生成的内容。如何配置Git以从除一些(gh-pages
)之外的所有分支中获取。我还想避免在我的本地分支列表中看到gh-pages
。
答案 0 :(得分:5)
您可以修改配置以仅获取一个分支:
[remote "origin"]
fetch = +refs/heads/master:refs/remotes/origin/master
使用
git config remote.origin.fetch +refs/heads/master:refs/remotes/origin/master
如果你有多个分支,你可以添加几个fetch指令来获取那些(gh-pages
除外,你不想获取的那个)
有关多分支提取的示例,请参阅this question。
我知道这不是一个可以很好地扩展的解决方案,但是获取refspec不支持正常的排除语法(例如^<rev>
:请参阅“Specifying ranges”)。
有一种方法可以隐藏git 1.8.2中引入的某个refspec:commit daebaa7, "upload/receive-pack: allow hiding ref hierarchies",但这是在远程端,而不是客户端。