如何在取/拉时告诉Git忽略某些分支?

时间:2014-05-17 16:03:36

标签: git git-config git-fetch

目前,当我拉动时,我会从所有分支机构进行更改:

$ 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

1 个答案:

答案 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",但这是在远程端,而不是客户端。