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

Jac*_*ing 13 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
Run Code Online (Sandbox Code Playgroud)

我喜欢这种行为,但我不需要从gh-pages分支中获取内容,因为它只包含生成的内容.如何配置Git以从除some(gh-pages)之外的所有分支获取.我也想避免gh-pages在我的本地分支列表中看到.

Von*_*onC 5

您可以修改配置以仅获取一个分支:

[remote "origin"]
  fetch = +refs/heads/master:refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

git config remote.origin.fetch +refs/heads/master:refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

如果你有多个分支,你可以添加几个fetch指令来获取那些(除了gh-pages你不想获取的那个)

有关多分支提取的示例,请参阅此问题.

我知道这不是一个可以很好地扩展的解决方案,但是fetch refspec不支持正常的排除语法(例如^<rev>:参见" 指定范围 ").

有一种方法可以隐藏某个refspec,在git 1.8.2中引入:commit daebaa7,"upload/receive-pack:允许隐藏ref层次结构",但这是在远程端,而不是客户端.

  • 问题是关于**跳过**而不仅仅包括一个. (5认同)
  • 您可以创建一个别名来推送并将推送的分支添加到您的fetch配置中. (2认同)