master
誰もが git リポジトリで作業している「メイン」ブランチである名前ブランチは、単なる慣習であると想定しています。右?
では、名前を使用しないようにオーバーライドされた git リポジトリの「メイン」ブランチ名をどのように知ることができますmaster
か?
2 に答える
すでにリポジトリのクローンを作成しており、リモートの名前が であると仮定するとorigin
、次を実行できます。
git symbolic-ref refs/remotes/origin/HEAD
これは通常 を出力しますrefs/remotes/origin/master
が、プロジェクトがsomeotherbranch
デフォルトとして選択した場合は が表示されますrefs/remotes/origin/someotherbranch
。
背景: ローカル (裸ではない) リポジトリで、HEAD
現在チェックアウトされているものを示します。共有 (ベア) リポジトリには作業ディレクトリがないため、何もチェックアウトされません。したがって、裸のリポジトリでHEAD
は、リポジトリのデフォルトのブランチ ( を実行したときに取得するブランチgit clone <url>
) を示すために使用されます。
リポジトリを複製すると、リモート リポジトリのHEAD
参照がローカルrefs/remotes/origin/HEAD
参照にコピーされ、実行するたびに更新されますgit remote update
(ただし、共有リポジトリのデフォルト ブランチを変更する人はほとんどいません)。これにより、(上記のsymbolic-ref
コマンドを実行して) リモート リポジトリのデフォルト ブランチの名前を簡単に確認できます。