実行したコマンドをそのままコメントにしてコミットするGitのサブコマンドを作ったら便利だった
例えばRailsのジェネレーターを実行したら、実行したコマンドをそのままコミットメッセージにしてコミットしたいじゃないですか*1。これ、毎回コマンドをコピペするのが面倒なのでgit-runという雑な名前でサブコマンドを作りました。
こういう感じで動きます。
$ git run bin/rails g model Article title:string body:string
+ eval bin/rails g model Article title:string body:string
++ bin/rails g model Article title:string body:string
Running via Spring preloader in process 85030
invoke active_record
create db/migrate/20180330085508_create_articles.rb
create app/models/article.rb
invoke rspec
create spec/models/article_spec.rb
invoke factory_bot
create spec/factories/articles.rb
+ git add .
++ echo bin/rails g model Article title:string body:string
+ git commit -e -v -m 'bin/rails g model Article title:string body:string'
[post-read-ui 664e3610f] bin/rails g model Article title:string body:string
4 files changed, 23 insertions(+)
create mode 100644 app/models/article.rb
create mode 100644 db/migrate/20180330085508_create_articles.rb
create mode 100644 spec/factories/articles.rb
create mode 100644 spec/models/article_spec.rb
コミット時はエディタが立ち上げるようにしています。3行目以降に理由や経緯を書きたい場合があるので。
このようにgit run以降をコメントにしてコミットされます。
$ git log -1
commit 664e3610f8f0f35c4b252b28a845252bf7b7f1b0 (HEAD -> master)
Author: Daisuke Fujimura <me@fujimuradaisuke.com>
Date: Fri Mar 30 17:55:09 2018 +0900
bin/rails g model Article title:string body:string
コマンド自体は単純です。
#! /bin/sh set -xe eval $@ git add . git commit -e -v -m "$(echo $@)"
便利!
*1:これは@amatsudaさんと一緒に仕事をしている時に教えてもらった。