ちょっとだけ実用性のあるgitのaliasコマンドを作ってみる

技術

はじめに

こんにちは!さいけです。

今回は、タイトルの通りちょっとだけ実用性のあるgitのaliasコマンドを作ってみる記事になります。

紹介するaliasコマンドは以下、2つです。

  • git statusを行うaliasコマンド
  • add、commit、pushを行うaliasコマンド

また、本記事は前記事と関連しているので、事前に読んでいただけるとより理解しながら本記事を読み進められる思います!

また、そもそもaliasって何?って人は、以下記事を読むと良いと思います。

Error 403 (Forbidden)|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
403エラーページです。用語の意味を「ざっくりと」理解するためのIT用語辞典です。

それでは、さっそくやっていきます!

やってみる

git statusを行うaliasを作ってみる

毎回、git statusを入力するのって地味に大変ですよね?

そこで、statusのaliasを作りたいと思います。

今回はsのaliasでstatusが実行されるようにしたいと思います。

以下、aliasの設定コードです。

[alias]
s = status

上記のaliasコマンドを実際に使ってみたいと思います!

> git s
On branch master
Your branch is up to date with 'origin/master'. 

Changes not staged for commit:
  (use "git add …" to update what will be committed)
  (use "git checkout -- …" to discard changes in working directory)

    modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")

aliasが設定され、sがstatusと同じ機能を持つコマンドとして利用できるようになりました!

git add -all とgit commit -m ‘コメント’とgit pushを行うaliasコマンドを作ってみる

ローカルで変更したものをリモートに上げる時に、addしてcommitしてpushしてとコマンドを複数入力しなければなりません。

それって結構大変ですよね。

また、commit -m ‘コメント’ のコメント以外は、リモートに上げる手順として大きく変化はありません。

なので、add -allとcommit -m ‘コメント’とpushを行えるaliasコマンドを作りたいと思います。

以下、aliasの設定コードです。

[alias]
acp = "!f(){ git add --all && git commit -m $1 && git push;};f"

実行前に、上記コマンドを少しだけ解説します。

  • acpのaliasコマンドを実行すると、git add –all、git commit -m ‘コメント’、git pushが順に実行されます。
  • &&繋ぎをしているので、コマンドがエラーだった場合はそこで実行終了し&&以降実行されません。
  • $1には、aliasコマンド後に入力された値が引数として渡され格納されます。
  • 上記のaliasコマンドは「git acp readme修正」みたいな感じで利用できます。

 

上記のコマンドを実際に使ってみたいと思います!

と、思ったのですが、今回は設定したコマンドが実行されているかを確認したいため、上記のaliasコマンドの途中にechoを加えます。echoを追記したaliasコマンドは以下です。

[alias]
acp = "!f(){ echo [!]gitaddall && git add --all && echo [!]gitcommit && git commit -m $1 && echo [!]gitpush && git push;};f"
> git acp readme修正 
[!]gitaddall
[!]gitcommit
[master 3becff7] readme修正
1 file changed, 1 insertion(+), 1 deletion(-) 
[!]gitpush Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 301 bytes | 301.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/hoge/hoge.git
2ce1ede..3becff7 master -> master

aliasが設定され、acpでadd、commit、pushされているのが確認できました!

また、念の為に途中で設定したgitコマンドがこけた場合、以降のコマンドが実行されないかも試してみます。

こけさせる方法としては、commitするものが何もないようにします。

> git acp readme修正
[!]gitaddall
[!]gitcommit
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

commitで止まり、git pushまで実行されていないのが確認できました!

おわりに

いかがだったでしょうか?

本記事では、ちょっとだけ実用性のあるgitのaliasコマンドを作ってみました!

いつも何気なく入力しているコマンドをまとめてaliasに設定することによって、かなり手間が省けるようになります。

今回は、ちょっとだけ実用性のあるgitのaliasコマンドを紹介しましたが、アイデア次第ではもっと便利で実用性のあるaliasコマンドが作れるかと思います。

なので、自分で色々なaliasコマンドを作ってみてください!

それでは!( ・∇・)ノシ

コメント

タイトルとURLをコピーしました