git commitとpushを素早く行うコマンドを作りました
pip でインストールできる、シェル用の git アシストコマンド「gnow」を作りました。Python3.5以上で動作します。
このコマンドは、私の「コミットは細かく行いたいが、一連のコマンド入力が面倒」という怠惰の心念から生み出されました。ゆえに、多人数が参加する真面目で堅苦しいプロジェクトよりも、個人プロジェクトでの使用を想定しています。最初のコードはシェルスクリプトで書かれていましたが、機能拡張のため Python で書き直しました。
できること
- git add, git commit, git push の一連の動作を1コマンドで実行
- 自動でコミットメッセージを付与。手動入力も可能
- X.Y.Z 形式のタグのZ(パッチバージョン)を自動インクリメント
インストール
gnow コマンドは、git リポジトリのディレクトリ内で使用できます。リポジトリの設定は済ませておいてください。
$ pip install gnow
使い方
現在のステータス
現在のブランチ・最新のタグ・ワーキングツリー内のファイル・インデックス(ステージング)内のファイル・pushしていないコミットを表示します。
$ gnow -smain (1.1.1)--------------------- Working tree - Updated README.md Index - No files. Unpushed commit - No commits.---------------------
git add -> git commit -> git push を一気に実行
gnow、と入力してエンターをポチポチ押すだけでpushまで完了します。
# コミットメッセージを自動付与
$ gnow
# コミットメッセージを手動付与
$ gnow "YOUR COMMIT MESSAGE"
main (1.1.1)--------------------- Working tree - Updated README.md Index - No files. Unpushed commit - No commits.---------------------ADD files to the index? [n/Y or Enter]STAGING done. ✔COMMIT MESSAGE: Updated README.mdBRANCH: mainCOMMIT the index contents? [n/Y or Enter]COMMIT done. ✔BRANCH: mainPUSH local commits? [n/Y or Enter]PUSH done. ✔
コミットだけを行う
git commit するときの挙動と同じです。
# コミットメッセージを自動付与
$ gnow -c
# コミットメッセージを手動付与
$ gnow -c "YOUR COMMIT MESSAGE"
ADD files to the index? [n/Y or Enter]
STAGING done. ✔
COMMIT MESSAGE: Updated README.md
BRANCH: main
COMMIT the index contents? [n/Y or Enter]
COMMIT done. ✔
タグ付け
この機能の挙動はまだ調整が必要なのですが、Git のマニュアルに沿って、vX.Y.Z の形式でタグ付けをしている方におすすめの機能です。パッチバージョンの Z を自動でインクリメントして、push してくれます。
# パッチバージョンを自動インクリメント$ gnow -t
Latest tag is 1.0.1New tag is 1.0.2TAG the latest commit? [n/Y or Enter]# タグを指定
$ gnow -t 1.0.0Latest tag is 0.0.6New tag is 1.0.0TAG the latest commit? [n/Y or Enter]# 既存のタグが無い場合$ gnow -tNo tags are currently.Auto incremented version is 0.0.1TAG the latest commit? [n/Y or Enter]