LoginSignup
0
0

GitHubのデフォルトブランチ名を取得する

Last updated at Posted at 2024-02-20

やりたいこと・背景

$ git remote show origin
* remote origin
  Fetch URL: git@github.com:vividmuimui/foo.git
  Push  URL: git@github.com:vividmuimui/foo.git
  HEAD branch: main
  Remote branches:
    bar_branch        tracked
  $ git branch -r
  origin/HEAD -> origin/main
  origin/bar_branch
  origin/main

上記などのコマンドで表示される HEAD branch: mainorigin/HEAD -> origin/mainmain の部分を取得したい。

理由としては、リモートリポジトリの設定によって、master だったり main だったりする。
これをコマンド一発で取れるようにしたい。

コマンド

$ git branch -r | grep HEAD | cut -d'/' -f3
# main

補足: このコマンドをどう使うか

$ hub compare `git branch -r | grep HEAD | cut -d'/' -f3`...${ここにブランチ名}

git push後に上記のようなコマンドを実行するようにすることで、pushしたらPR作成ページが開かれるので便利。
(VS codeでやったらもっと便利なことはありそうだけど。)

具体的には以下のコマンドを git config として書いて用意している。

    # 行末の `newpr` は $0 をうめて、$1に実際の引数を入れるため。これがないと、実際の引数があるときは$0にそれが入るし、実際の引数がないときは$0に`sh`が入ってくるため。
    newpr = "!sh -c ': ${1?require remote branch name}; git switch -C temppr; git push origin HEAD:$1; hub compare `git branch -r | grep HEAD | cut -d'/' -f3`...$1' newpr"

git switch -C temppr あたりは完全に僕のローカルのブランチの運用に依存しているので、上記コマンドを利用される際はよしなに直してください :pray:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0