LoginSignup
1
0

More than 5 years have passed since last update.

Git エイリアスをUnix風のコマンドで設定する その2(git-alias, git-unalias)

Last updated at Posted at 2019-02-17

はじめに

ご無沙汰しております。
いまだ性懲りもなくGit エイリアスにかまけておりまして、今回はその第2弾の記事となります。

前回の記事では、Git エイリアスを簡単に設定するために編み出したエイリアス(alias.alias)についてご紹介しました。
ところが、記事を書き終えた後、わざわざエイリアスにする必要ある?ということに気付いてしまいまして、新しく作り直しておりました。

というのも、Gitにはパスの通ったディレクトリにある git- で始まる実行ファイルがサブコマンドとして使えるというハックがあるんですよ(git-flowで有名ですね)
要するに、export PATH="$HOME/bin:$PATH" なんてときに ~/bin/git-subcommand という実行ファイルがあれば、なんと git subcommand ... という風に使えてしまう訳です。
しかも言語によらないので、シェルスクリプトだろうがPythonだろうが、あまつさえC++製の実行ファイルでもOKです。

それならば、git-alias というサブコマンド形式にしてしまった方が記述の自由度も高いし、メンテも楽だということで、エイリアスをやめてサブコマンドに移行しました。
あと、ついでに git-unalias も作りました。エイリアスの削除もUnixライクにできます!

ちなみに、相変わらずシェルスクリプトで書いています。
ソースがかなり肥大化してしまったので、最早シェルスクリプトじゃない方が良いかもしれません……。

インストール

$ git clone https://github.com/khiosorg/git-alias.git && cd git-alias
$ ./install.sh /usr/local/bin

./install.sh の引数を変えると、お好みのディレクトリにインストール(要はコピー)できます。省略すると /usr/local/bin です。
パスを通すのを忘れないでくださいね。

※まだREADME書いてないです。すみません。
README書きました!拙い英語で逆に読みにくいと思います。すみません。

git-alias

$ git alias [-p] [name[=value] ... ]
  • -p: 一覧表示です。

git-unalias

$ git unalias [-ad] name [name ...]
  • -a: 全てのエイリアスを削除します。
  • -d: いわゆるdry runというやつです。

最後に

追加機能のアイデアを色々考えているので(パターンマッチ、正規表現、インタラクティブ等)今後も細々とメンテを続けていく予定です。
たまにGitHubの方をのぞいてみてください笑

あと、git- 型サブコマンドを集めたライブラリとしてgit-extrasを紹介しておきます。
色んなサブコマンドがあるので面白いと思いますよ。
git-alias もあったりしますが、拙作の方が高機能のはず!笑

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0