2013-05-30 55 views
14

我正在使用GitHub的Pages功能。这可以通过将发布的HTML放在名为gh-pages的分支中。我有两个单独的工作目录,一个用于项目本身,另一个用于HTML文档。git可以永久忽略远程分支吗?

在前者中,我想完全忽略gh-pages分支,因为它是不相关的工作线,我不想让它混淆我的各种提交可视化。

也就是说,我有什么是:

$ git remote show origin 
* remote origin 
    Fetch URL: [email protected]:reidpr/quac.git 
    Push URL: [email protected]: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) 

什么,我想是这样的:

$ git remote show origin 
    [...] 
    Remote branches: 
    bar    tracked 
    foo    tracked 
    gh-pages   ignored 
    master   tracked 
    [...] 

注意有几个分支,我要跟踪,只是一个我不知道。我想指定后者,而不是前者。

我可以删除当地引用origin/gh-pages,但它然后回来下一次我回来git fetch

回答

5

您可以修改的.gitconfig,所以它告诉git只获取你只是想:

fetch = +refs/heads/mybranch:refs/remotes/origin/mybranch 

此外,您还可以创建抓取一个别名,其获取你想要的东西:

git fetch origin +refs/heads/mybranch:refs/remotes/origin/mybranch 

一个别名的创建是在添加的.gitconfig新别名为简单:

[alias] 
    myfetch= git fetch origin +refs/heads/mybranch:refs/remotes/origin/mybranch 

UPDATE:

当然你也可以指定多个分支:

git fetch origin +refs/heads/master:refs/remotes/origin/master +refs/heads/develop:refs/remotes/origin/develop 
+4

有什么东西可以让我拿东西*除了*我不想要的东西?在上面的例子中,我只想要一个远程分支,但实际上有几个分支,而且这只是我不想要的分支。 – Reid

+1

@Reid不幸的是,我不知道一个特定分支的不合逻辑。我已经在kleast中提供了一个更新的答案,它向你展示了如何指定更多想要获取的分支。 –

+3

一个选项可能是使用挂钩后的脚本来删除违规的分支。虽然没有完全想到通过答案。 – jb510

4

我正好碰到了同样的问题。我对'bob'的一个分支感兴趣,但他有很多分支混乱我的git branch -a输出。

我这样做:

rm .git/refs/remotes/bob/{next,master,maint} 

和树枝都不见了。虽然git可能会恢复它们,但我并不打算经常从bob中获取。