32893


ある git url (例: git@hogehoge.com:foo/bar.git) があったとき、このリモートのデフォルトブランチを取得したいです。

何も引数指定せずに clone
してみたときにチェックアウトされているブランチが、デフォルトブランチであるので、原理的には取得可能ではあると思っています。かといって、わざわざ clone
するのはあまりにも手間です。

## 質問:

  * リモートのデフォルトブランチを取得することは可能ですか？


CC BY-SA 3.0
2017-02-23T04:19:13.760
32890
2017-02-23T05:37:14.657
754
question
git
リモートのデフォルトブランチを取得したい


GitHubなどではデフォルトブランチと呼称していますが、厳密には `HEAD` が指すブランチです。そして `HEAD` の正体は symref
と呼ばれる、ref を参照する ref です。

### リモートのHEADが指すブランチを文字列で取得する

リモートに存在する ref とそれに対応するコミットを一覧する `git ls-remote` というコマンドがあるのですが、`--symref`
オプションを付けると参照先のref (この場合ブランチ) も表示します。

[code]

    $ git ls-remote --symref https://github.com/ruby/ruby.git HEAD
    ref: refs/heads/trunk   HEAD
    532bbd4ebf7a90c101a4cb42a680bbb0e29e64d8        HEAD
    
[/code]

### 参考

  * [What determines default branch after "git clone"? - Stack Overflow](https://stackoverflow.com/q/18726037/2818869)
  * [Get the branch name pointed at by HEAD in a remote repository without cloning the remote - Stack Overflow](https://stackoverflow.com/a/41925348/2818869)


CC BY-SA 3.0
2017-02-23T05:37:14.657
32893
2017-02-23T05:37:14.657
2017-05-23T12:38:55.307
-1
8000
32890
answer