我的團隊將dev和master的用法作爲幾個repos的默認分支交替使用,我想編寫一個腳本來檢查默認分支,當進入一個目錄時。git - 如何獲取默認分支?
當這些回購中的某些回收請求被打開時,它們默認爲'dev'或'master'作爲合併目標。
我明白如何設置此信息,但無法恢復: https://help.github.com/articles/setting-the-default-branch/
是否有可用的一個git命令確定遠程存儲庫默認分支?
我的團隊將dev和master的用法作爲幾個repos的默認分支交替使用,我想編寫一個腳本來檢查默認分支,當進入一個目錄時。git - 如何獲取默認分支?
當這些回購中的某些回收請求被打開時,它們默認爲'dev'或'master'作爲合併目標。
我明白如何設置此信息,但無法恢復: https://help.github.com/articles/setting-the-default-branch/
是否有可用的一個git命令確定遠程存儲庫默認分支?
是否有git命令可用來確定遠程存儲庫的默認分支?
沒有,似乎沒有爲:
git ls-remote -v https://github.com/<user>/<repo>
將列出所有的分支,而不是HEAD(這是指定默認分支的symref)
同樣, GitHub Reference API可以列出標題,但不包括HEAD。
這對我的作品使用Git 2.1.10,使用從GitHub克隆資源庫:
git branch -r --points-at refs/remotes/origin/HEAD
這種方法的主要問題是,它列出每遠程分支指向頭;然而,輸出包括提示:
origin/HEAD -> origin/master
origin/master
origin/test123
所以,你可以後期處理與grep
或類似的輸出,以找到一個帶箭頭:
git branch -r --points-at refs/remotes/origin/HEAD | grep '\->' | cut -d' ' -f5 | cut -d/ -f2
似乎有點像一種變通方法解決方案但是這似乎工作:
$ cat .git/refs/remotes/origin/HEAD
ref: refs/remotes/origin/master
在從GitHub克隆回購測試與git的2.9.4(但在其他版本可能工作):
$ git symbolic-ref refs/remotes/origin/HEAD | sed '[email protected]^refs/remotes/origin/@@'
master
默認分支是github的東西,而不是git的東西。 – 2015-02-23 03:10:44
您可以使用GitHub API,如下面的問題所示:http://stackoverflow.com/questions/16500461/how-do-i-find-the-default-branch-for-a-repository-using-the-github -v3-api – 2015-02-23 03:15:04