LoginSignup
3
1

More than 3 years have passed since last update.

[Tips] GitHubのCLIツール:hubでPR作成をちょっと楽にする

Last updated at Posted at 2019-07-23

皆様、hub使ってますか?

以前少しだけ使って結局使うのをやめてしまったのですが、最近また使い始めたのでこの機会に共有させてください。

本記事の対象者

  • GitHubを使っている人
    • 特にWIP手法で開発している人
    • すこし楽したい人

hub?

GitHubが提供しているコマンドラインツールです。
issue書いたり、PRを作ったりがコマンドでできます。

インストール

こちらにありますが、Macユーザーの場合は以下で完了します。

brew install hub

WIPなPRを新しく作る

これまでのやり方(嶋生の場合)

※参考までに()内に個人的なエイリアスを使った場合を記載。

  • 新しいブランチを作成。 git checkout -b hogegit co -b hoge
  • 空コミット作成。 git commit --allow-empty -m '[WIP][ci skip]〇〇をやる'git cme -m '[WIP][ci skip]〇〇をやる'
  • リモートリポジトリにpushする。 git push -u origin hogegit pc
  • GitHubに移動し、ポチポチPRを作る。

hubを使う場合

  • 前提として、~/.gitconfigに以下のエイリアスを設定しておく [alias] mkpr = !"f() { git commit --allow-empty -m \"$1\" && git push -u origin HEAD && hub pull-request --draft; }; f"
  • 新しいブランチを作成。 git checkout -b hogegit co -b
  • 新しいPRを作成。git mkpr '[ci skip]〇〇をやる'
    • 空コミット作成してpushしてPR作成を一度にやってます。
    • 前提としてpushしたいブランチにチェックアウト済の必要があります。(いまいるブランチをpushする)
    • PRをDraftで作成するようにしているのでタイトルから[WIP]は削除しています。

実際に↓のような感じで使ってます!

hub_mkpr.gif

気になる方はぜひ使ってみてください!!

その他:gitconfigをさらす

以下、自分の設定です。「こんな設定もいいよ!」というのがあったら教えてください。

[alias]
    lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
    lga = log --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
    st = status
    cm = commit
    br = branch
    co = checkout
    # 行ごとの差分じゃなくて,単語レベルでの差分を色付きで表示する
    difff = diff --word-diff
    diffc = diff --cached
    cme = commit --allow-empty
    pc = push -u origin HEAD
    # use hub command
    see = browse
    mkpr = !"f() { git commit --allow-empty -m \"$1\" && git push -u origin HEAD && hub pull-request --draft; }; f"
[color]
    ui = true
[url "git@github.com:"]
    ...
[user]
    ...
[core]
    editor = vim
    pager = nkf -w | LESSCHARSET=utf-8 less
[commit]
    template = ~/.commit_template

特筆することはあまりない感じですが、1つ紹介すると git diffc(git diff --cached)はよく使います。

通常のgit diffが Untrackedなファイルのdiffを表示してくれるものですが、git diff --cachedgit addしたファイルのdiffを表示してくれます。
複数ファイルを編集している状態で一部ファイルだけcommitしたいときなどに「どれaddしたっけなぁ」の確認のためなどに使ってます。あとは(言葉では説明しづらいのですが…)完成した部分から順にaddしていくみたいな使い方のときに使ってます。

3
1
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
3
1