2013-05-30 77 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中獲取。