我正在使用GitHub的Pages功能.这通过将已发布的HTML放在一个名为的分支中来实现gh-pages.我有两个单独的工作目录,一个用于项目本身,另一个用于HTML文档.
在前者中,我想完全忽略gh-pages分支,因为它是一个不相关的工作线,我不希望它混乱我的各种提交可视化.
也就是说,我所拥有的是:
$ git remote show origin
* remote origin
Fetch URL: git@github.com:reidpr/quac.git
Push URL: git@github.com:reidpr/quac.git
HEAD branch: master
Remote branches:
bar tracked
foo tracked
gh-pages tracked
master tracked
Local branches configured for 'git pull':
master merges with remote master
Local refs configured for 'git push':
master pushes to master (up to date)
Run Code Online (Sandbox Code Playgroud)
而我想要的是:
$ git remote show origin
[...]
Remote branches:
bar tracked
foo tracked
gh-pages ignored
master tracked
[...]
Run Code Online (Sandbox Code Playgroud)
请注意,我确实想要跟踪几个分支,而我只有一个分支.我想指定后者,而不是前者.
我可以删除本地引用origin/gh-pages,但是下次我会回来git fetch.
Pow*_*iKi 12
从2020 年 10 月发布的 git 2.29 开始,您可以利用负 refspec 排除要获取的特定分支。
对于 GitHub Pages,您可以这样做:
git config --add remote.origin.fetch '^refs/heads/gh-pages'
Run Code Online (Sandbox Code Playgroud)
和 Dependabot:
git config --add remote.origin.fetch '^refs/heads/dependabot/*'
Run Code Online (Sandbox Code Playgroud)
您可以在https://github.blog/2020-10-19-git-2-29-released/#user-content-negative-refspecs上阅读更多相关信息
您可以修改.gitconfig,因此它会告诉git您只获取您想要的内容:
fetch = +refs/heads/mybranch:refs/remotes/origin/mybranch
Run Code Online (Sandbox Code Playgroud)
此外,您可以为获取所需内容的fetch创建别名:
git fetch origin +refs/heads/mybranch:refs/remotes/origin/mybranch
Run Code Online (Sandbox Code Playgroud)
创建别名就像在.gitconfig中添加新别名一样简单:
[alias]
myfetch= git fetch origin +refs/heads/mybranch:refs/remotes/origin/mybranch
Run Code Online (Sandbox Code Playgroud)
更新:
您当然可以指定更多分支:
git fetch origin +refs/heads/master:refs/remotes/origin/master +refs/heads/develop:refs/remotes/origin/develop
Run Code Online (Sandbox Code Playgroud)