この記事は上智大学エレラボ Advent Calendar 2022 第19日目の記事です。
はじめに
上智大学を卒業してから早いもので2年が経過しました。今年もアドベントカレンダーに寄稿をしたいと連絡したところ部長からご快諾をいただきましたので執筆させていただきます。
今回の記事は小ネタでGitエイリアスに設定している内容についてです。もともとは手打ちや Visual Studio Code
の Source Control
で頑張っていたのですが、ある日エイリアスを設定できることを知って登録してみたところ、思った以上に便利で今ではいくつか設定しています。その中から2種類のエイリアスを紹介いたします。
copy-current-branch-name
git config --global alias.copy-current-branch-name '!git branch --show-current | tr -d "\n" | pbcopy && pbpaste'
今チェックアウトしているブランチの名前をクリップボードにコピーするエイリアスです。
こだわったポイントとしては、最後の改行文字を消しているところと pbcopy && pbpaste
しているところの2つです。
改行文字を消すことで、コピーしたブランチ名を他のアプリケーションへ貼り付ける際に意図しない改行の発生を防げます。
また、最後に pbpaste
でコピーした内容を表示することでクリップボードに入った内容を把握できます。
実行例
$ git copy-current-branch-name
main%
※ 筆者の環境が zsh
なので、末尾改行がない出力に対して %
が付加されています
余談ですが、 ~/.zshrc
のエイリアス設定で、 alias pbcotee="pbcopy && pbpaste"
を入れておくといろんな場所で使えて便利です。コマンド名は teeコマンド に由来しています。
approve-pr
, approve-pr-with-cat
git config --global alias.approve-pr '!bash -c '\''echo "$1" | gh pr review --approve --body-file -'\'' -'
gh
コマンドを使って今チェックアウトしているPRを承認するエイリアスです。 gh
コマンドのセットアップ方法などは公式サイト をご覧ください。
実行例
git approve-pr "LGTM\!\!"
✓ Approved pull request #1
当然のことながらコメントはMarkdown形式なので、好きな画像を差し込むことができます。
LGTMeow というサービスに掲載されている猫ちゃんの画像のリンクをテキストファイルに保存しておきます。
https://lgtm-images.lgtmeow.com/2021/03/16/01/e62cf588-057c-43a1-82a0-035d7c0e67bf.webp
https://lgtm-images.lgtmeow.com/2021/03/16/23/ac9c977c-5794-4c51-b719-f715d9db2eaf.webp
https://lgtm-images.lgtmeow.com/2021/11/16/22/82f46511-f5c8-4488-a090-871e9b7b1a65.webp
https://lgtm-images.lgtmeow.com/2022/04/11/00/01c919db-0ad8-42a8-bf06-c67a3794254e.webp
https://lgtm-images.lgtmeow.com/2022/04/16/22/88ff1d16-421b-465c-988a-91d911fd801c.webp
https://lgtm-images.lgtmeow.com/2022/04/27/16/9f452c98-7d03-4055-8b19-5822fc9a1452.webp
https://lgtm-images.lgtmeow.com/2022/09/14/12/e4372f80-b057-4ad3-9be0-ad92e3694992.webp
https://lgtm-images.lgtmeow.com/2022/12/10/23/b63b4cc3-7153-4e4e-bb0b-9533fc38cc0c.webp
https://lgtm-images.lgtmeow.com/2022/12/13/16/15f3a3ed-498b-4dbf-8a1d-7b5abc35e58c.webp
shufコマンドでランダムに抽出してコメントに追記できます。
git approve-pr "LGTM\!\!<br> )"
fzfなどを使っていればコマンドが長くてもそこまで困らないですが、真ん中のコメントをいじらなければ行けないのは少し不便です。
そこで、 approve-pr-with-cat
もエイリアスを用意してあげています。
git config --global alias.approve-pr-with-cat '!bash -c '\''echo "$1<br> ['\''")](https://lgtmeow.com)" | gh pr review --approve --body-file -'\'' -'
git approve-pr-with-cat "良いと思います!!"
✓ Approved pull request #1
いい感じに動いていますね。ぜひ殺伐としたPRに猫の画像を加えて癒やしを与えてみてください。
参考文献
- 2.7 Git Basics - Git Aliases
- Git で今のブランチ名を取得するコマンドの違いを確認してみた