はじめに
普段ターミナルで入力するgit commit -m"hoge hoge"
やgit branch
など、短いようで実は10文字ぐらい、またはそれ以上の文字をタイプしているんです。
ここで一旦、目を瞑って深呼吸してみましょう。。。。。。。。。。。。
面倒くさくないですか。。。?頻繁に使うのにそんなにタイプするの。。。
可能だったらもうちょい短くできたらな、って思ったことありませんか?
Macの場合、zshエイリアスというショートカットコマンドを登録できる仕様があり、登録内容次第では日々のターミナルのコマンド入力に使う時間を短縮できます。
そこで今回は私が登録していて普段使っているエイリアスの一部をご紹介します!!
「なにそれ初めて聞いた!」って方、存在は知ってたけど登録が面倒くさくてやってないよ〜という方も、ぜひ登録してみてください!日々のコマンド入力が圧倒的に楽に感じるようになります。
zshエイリアスの登録方法
.zshrcを開く
rootディレクトリにある.zshrc
をエディタで開いてください。
エディタはなんでも良いですが、vscodeのコマンドがインストールされている方は以下コマンドでVSCodeで開けます。
code ~/.zshrc
まだ.zshrcファイルが存在しない場合は以下コマンドで空のファイルを作成できます。
touch ~/.zshrc
コマンドを登録する
コマンド登録の公式は以下です。
alias ショートカットコマンド='元のコマンド'
例えば、git branch
というコマンドをgb
で動作するようにしたい時は以下のように記述してファイルを保存します。
alias gb='git branch'
これを登録すると、次からはgb
と打つだけでカレントブランチとローカルのブランチリストを参照することができるようになります!
こんな感じで、自分のよく使うコマンドはショートカットコマンドを登録しておくと業務効率が上がります⤴︎⤴︎
変更を反映する
.zshrcを編集した場合、その変更内容はファイルを保存しても特定のコマンドを打つかターミナルを再起動しない限り反映されません。
ということで、.zshrcを保存したら以下コマンドを叩いて変更を反映します。
source ~/.zshrc
これでzshのエイリアス登録のプロセスは以上です。ここから私が登録しているエイリアスと応用方法をカテゴリごとにご紹介します。
私が登録しているコマンド集
ここから私が登録しているコマンドの一部をご紹介します!
基本タスク系
alias ll='ls -la'
alias rmf='rm -rf'
主にリスト表示と削除系を登録しています。rm -rf
をrmf
でできるのはいつもとても助かっています。
VSCode
alias co='code .'
カレントディレクトリをVSCodeで開きたいときはいつもこれを使っています。
Git系
alias g='git'
alias gb='git branch'
alias gbd='git branch -D'
alias gst='git status'
alias gpl='git pull'
alias gps='git push'
alias ga='git add .'
alias gcm='git commit'
alias gch='git checkout'
alias gsta='git stash'
alias gsta-u='git stash -u'
alias gsta-a='(){git stash apply stash{$1}}'
alias gsta-c='git stash clear'
alias gsta-p='git stash pop'
alias gf='git fetch origin'
特に複数のブランチを使い分ける開発がある時はgb
(git branch)やgbd
(git branch -D)、gch
(git checkout)のコマンドは非常に重宝します。
画面共有しながらチェックアウトする際には「チェックアウトはやw」なんて言われます笑
あと私はgit stash
系のコマンドを登録しています。
git stash
系コマンドは以下のようなシチュエーションでかなり効率化できます。
ブランチAで開発をしている途中で...
- ブランチBでバグが見つかって優先して作業をしなければならないケース
- ブランチCでチームメンバのコードレビューをしたりするケース
- 昨日出していたブランチDのレビューが返ってきたので修正するケース
- 作業が中途半端でコミットには入れたくない
上記のような感じで開発中のブランチ移動が多いので、これ系のコマンドはいつも助かっています。
個人開発系
ginit () {
git init && git add . && git status
git commit -m"initial commit" && git branch -M main
echo "Repository name: " && read name;
git remote add origin https://github.com/自分のgithubのアカウント名/${name}.git
git push origin HEAD
}
gcom () {
git add .
git status
echo "Commit message: " && read message;
git commit -m"${message}"
git push origin HEAD;
}
エイリアスは複数の直列的なコマンドのフローや対話型のフローを関数として登録することができます。
簡単に直列フローや対話型のフロー登録のお作法を記載します。
-
&&
で連続するコマンドを登録(改行も同様) -
echo
で入力補助などに使うテキストの表示 -
read 変数名
でテキストの入力を待ち、入力後に変数に格納 - ${変数名}で
read 変数名
で格納した変数の参照
これだけ覚えたら対話型の関数は作成できます!
gcom () {
git add .
git status
echo "Commit message: " && read message;
git commit -m"${message}"
git push origin HEAD;
}
上記のgcom()
を例にすると、ターミナルでgcom
と叩くと、git add .
、git status
が自動的に実行され、ターミナルにCommit message:
と表示されて入力用のカーソルが表示されます。
そこでコミットメッセージを入力すると、自動的にそのコミットメッセージがgit commit -m""
内に挿入され、gti push
まだ勝手にやってくれます。
このように対話型の関数を使いこなすと、日々の連続したコマンドのフローの一部を自動化することができます。
対話型の応用
gcom2 () {
git add . && git status
echo "Type commit category ex.add,modify..." && read category;
echo "Type ticket number" && read number;
echo "Type commit message" && read message;
git commit -m"${category} refs JIRA-ID:${number} ${message}"
git push origin HEAD;
}
中〜大規模の開発になると、JIRAなどのチケットでタスクを管理することもあると思います。
プロジェクトのルールによりけりですが、コミットには対応したJIRAチケットの番号を記載するケースもよく見受けられます。
このように、プロジェクトでコミットメッセージの型が決まっている場合には私はそのプロジェクトごとのエイリアスを作成して、プロジェクトでシェアしています。
上記のgcom2()
の場合、
-
gcom2
と叩く - カテゴリ入力で
add
やmodify
などを入力してEnter - JIRAチケット番号を入力してEnter
- コミット内容を入力してEnter
とすることで、add refs JIRA-ID:1234 検索ロジック実装
というような型の決まったコミットメッセージを自動作成することができます。
おわりに
よく使うgit系のコマンドをエイリアスに登録しておくのはとても便利です。
慣れてきたら自分のいる開発プロジェクトや体制でよく使うコマンドのフローをエイリアス登録して作業の効率化をしてみることをおすすめします!
うまくできたらチームメンバーに共有してあげましょう!大体喜ばれます笑