実行したコマンドをそのままコメントにしてコミットする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さんと一緒に仕事をしている時に教えてもらった。