2014-09-12 55 views
3

我有GitHub已安裝Windows。當我運行「git branch -a」時,它顯示了許多遠程跟蹤分支,並且它們看起來是拉取請求。如何隱藏「pr」遠程分支?

一個同事誰使用混帳 for Windows不看到這一點,但其他同事誰也使用GitHub的爲Windows能夠看到同樣的結果。

例如:我分叉了「bootstrap-sass」。在github.com上,我使用了「桌面克隆」按鈕。它爲Windows打開GitHub,並將新的回購添加到本地回購列表中。

運行「git branch -a」,它返回超過100個結果,其中大部分是「/ pr /#」。下面是一個小樣本:

C:\gh-ui\bootstrap-sass [master]> git branch -a 
    bower 
* master 
    remotes/kenshub/2.0-stable 
    remotes/kenshub/2.1-stable 
    remotes/kenshub/HEAD -> kenshub/master 
    remotes/kenshub/gh-pages 
    remotes/kenshub/master 
    remotes/kenshub/next 
    remotes/origin/bower 
    remotes/origin/master 
    remotes/origin/pr/3 
    remotes/origin/pr/4 
    remotes/twbs/2.0-stable 
    remotes/twbs/2.1-stable 
    remotes/twbs/gh-pages 
    remotes/twbs/master 
    remotes/twbs/next 
    remotes/twbs/pr/1 
    remotes/twbs/pr/10 
    remotes/twbs/pr/103 

我猜它是Windows的GitHub。我如何隱藏「pr」遠程分支?它是git配置,還是「桌面克隆」命令的一部分?

+0

如果我使用「混帳克隆」通過命令行,我沒有得到額外的「/ PR /」遠程跟蹤分支。如果我使用「克隆在桌面」,GitHub for Windows正在做一些額外的事情,並且我最終得到了一堆「/ pr /」遠程跟蹤分支。 GitHub for Windows在做什麼,還有什麼不同於普通的「git clone」?看到這個2.5分鐘的視頻截圖: http://screencast.com/t/oSS43ednMHyZ – yazzer 2014-09-16 16:58:52

+0

我從來沒有這個問題,直到最近更新到GitHub for Windows。很煩人。 – KingCronus 2015-03-25 12:20:09

回答

0

你不能隱藏,你可以刪除那些遠程跟蹤分支。
繼 「Can you delete multiple branches in one command with Git?」,你可以嘗試類似的東西:

git branch -D `git for-each-ref --format="%(refname:short)" refs/remotes/*/pr/*` 

(或者你可以使用other expressions with awk and xargs

這類似於deleting one remote tracking branch

但明白這是一個臨時解決方案:如果配置爲默認fetch = +refs/heads/*:refs/remotes/origin/*,則下次獲取將帶回全部遠程分支。
如「Git Internals - The Refspec」中所述,您還可以配置多個提取以便僅引入您想要查看的遠程跟蹤分支。

+0

感謝您的回答。我無法獲得刪除多個分支的不同選項。我確實瞭解了獲取引用配置。我會用更詳細地顯示問題的視頻爲我的問題添加評論。 – yazzer 2014-09-16 16:52:57

+0

@yazzer很好的反饋。 +1 – VonC 2014-09-16 17:25:59

1

克隆回購時,如果您安裝了用於Windows的GitHub,請勿使用「桌面克隆」選項。相反,請複製克隆URL並通過命令行運行git clone <url>

當您通過GitHub上的Windows克隆,它正在運行額外的命令,如:

fetch origin +refs/pull/*/head:refs/remotes/origin/pr/* +refs/heads/*:refs/remotes/origin/* --prune 
status --untracked-files=all --porcelain -z 

如果您不想再克隆的回購,再參考其他回答關於刪除分支機構,確保你沒有獲取refs congif來獲得「/ pr /」分支。查看您的.git/config文件,或運行git config --list --local

+0

要查看GitHub for Windows正在運行的命令,請查看調試日誌。點擊齒輪,「關於 - >打開調試日誌」 – yazzer 2014-09-16 17:24:43

0

也可以手動編輯.git/config文件,但不要跟蹤所有上游分支,而是跟蹤所有上游分支。

[remote "upstream"] 
    url = https://github.com/xyz/xyz.git 
    fetch = +refs/heads/*:refs/remotes/upstream/* 

與特定分支名稱替換 '*'

[remote "upstream"] 
    url = https://github.com/rsocket/rsocket-java.git 
    fetch = +refs/heads/1.0.x:refs/remotes/upstream/1.0.x 

然後,你需要通過一個

git branch -d -r upstream/0.2.x 

Deleting the references刪除遠程跟蹤分支中的一個 - 這不刪除遠程分支機構,它只是從本地刪除。

Batch pruning - 這將刪除遠程支數