Gitコマンドのaliasを設定すると git checkout
→ git ch
のように出来るようになります!
時短時短 ☺️
Gitの関連の設定を色々した結果「何やってるかよく分からないけど速い😂」
といい意味で評価していただいている(と信じたいw)事がある私の設定について記載します!
検証した環境
1 | git | 2.32.0 | |
2 | zsh | 5.7.1 | |
3 | Mac OS | 11.4 | macOS Big Sur |
4 | iTerm2 | 3.4.8 |
aliasを設定する前に
gitコマンドのaliasの設定の仕方は
- gitコマンドを使う
~/.gitconfig
等、設定ファイルに直接記述
の2通り、記事の主旨と逸れるので簡単に。
gitコマンドを使う
# コマンドにスペースが入らない場合はそのまま記載
$ git config --global alias.ch checkout
# コマンドでスペースを入れる場合は "" で囲む
$ git config --global alias.chb "checkout -b"
--global
の部分は--system
・--local
・--worktree
があるのでお好みで。
設定ファイルに直接記述
vim ~/.gitconfig
等で設定。
設定ファイルいじるのに慣れている人はこちらが速いと思います。
[color]
ui = auto
・
・
[alias]
ch = checkout
chb = checkout -b
alias設定で気をつけていること
私の場合、伝える上で他人のMac/PCでコマンドを叩く、もしくはコマンドを伝えるという事がちょこちょこあります。
また、sshでログインして別の環境でGit操作をする事もあります。
そのような場合自分のMacに設定しているaliasが使えません。
そういったケースて少なからず発生するものと思ってます。
なので、aliasを設定する際は元のコマンドが思い出せるようにすることを心掛けています。
例えば git checkout xx
をgit c xx
にするとcheckout
という単語を思い出せなくなりそうなのでgit ch
に設定しています。
この辺りの考え方・感じ方は人それぞれだと思いますが、
重要なのはどのコマンドをすると何が行われるか、というのが理解出来ていればGitの操作は思っている以上に楽に出来ます☺️
1. gitコマンドのalias
git ch
$ git checkout
checkoutは頻繁に使用するコマンド!
git ch -b "feture/xx"
のようにブランチの作成時も短く出来ます
$ git config --global alias.ch checkout
[alias]
ch = checkout
他のパターンでgit co
にされている人もいますね
git br
git branch
これを設定するとgit br -D feature/xx
のようにブランチの削除も短くなります
$ git config --global alias.br branch
[alias]
br = branch
git bra
git branch -avv
すべてのブランチを確認したい時用。
-a
でリモートのブランチも一緒に表示され、
-vv
は--verbose
と呼ばれ詳細が表示されます。
更にvv
と v
を2つ重ねる事で追跡ブランチも分かる ようになります。
-av
-avv
$ git config --global alias.bra "branch -avv"
[alias]
bra = branch -avv
git sh
git stash
何かと使うstash。
aliasに登録しておくとやっぱり便利
$ git config --global alias.sh stash
[alias]
sh = stash
git save
git stash save -u
stashをする際にコメントを残したい事があり、その際に使用するコマンド。
「メッセージ付きのstashどうやるんだっけ?」となる事も多いのでaliasに登録しておくと楽ですね
$ git save "メッセージ付きのstashを残すぞ!"
stashをする際はだいたい untracked のファイルも含めたい事が多い(私だけ?)ので、
-u
を付けて untrackedのファイルも含めるようにしています。
$ git config --global alias.save "stash save -u"
[alias]
save = stash save -u
git cp
git cherry-pick
登場頻度は低いcherry-pick
。
しかし出てきたら出てきたで良く打ち間違えるし長いので。笑
$ git config --global alias.cp cherry-pick
[alias]
cp = cherry-pick
git st
git status -s
私はstatus
をtigで確認するのでstatus
コマンド自体ほぼ使わないのですが、
-s
を使って短めに表示するようにしています
$ git config --global alias.st "status -s"
[alias]
st = status -s
git see
hub browse
gh repo view --web
該当リポジトリのGitHubをブラウザで開きます。
前者の場合hub
コマンドが、後者の場合gh
コマンドが必要になります。
インストールはそれぞれ
brew install hub
brew install gh
# hubコマンドの場合
$ git config --global alias.see "browse"
# ghコマンドの場合
$ git config --global alias.see "!gh repo view --web"
[alias]
# hubコマンドの場合
see = status -s
# ghコマンドの場合
see = !gh repo view --web
git la
git log --oneline --decorate --graph --branches --tags --remotes --all
ログの確認はよく行うようにしているのでかなり使用頻度の高いコマンド。
私がこの記事の中で1番使うコマンドがこのgit la
。
$ git config --global alias.la "log --oneline --decorate --graph --branches --tags --remotes --all"
[alias]
la = log --oneline --decorate --graph --branches --tags --remotes --all
利用頻度が高いため、私はgg
というコマンドをzshのaliasに登録しています
git delete-merged-branch <ブランチ名>
f () { git checkout $1; git branch --merged|egrep -v '\\*|develop|master|main'|xargs git branch -d; };f
特殊なコマンドですがかなり便利!
指定した<ブランチ名>
にマージ済みのローカルブランチを削除する、というコマンドになります。
例えばmasterにマージしているhoge
・fuga
がある時に
コマンドを実行すると
$ git delete-merged-branch master
Already on 'master'
Deleted branch fuga (was 813d817).
Deleted branch hoge (was 8a3cd3d).
hoge
・fuga
2つのブランチが削除されます。
開発を進めていくとローカルブランチにマージして不要になったブランチがたまることは往々にしてあるので、
そんな時にこのコマンドを実行すればローカルのマージ済みブランチを削除出来ます。
↓のサイトを参考に設定させてもらいました。
$ git config --global alias.delete-merged-branch "!f () { git checkout $1; git branch --merged|egrep -v '\\*|develop|master|main'|xargs git branch -d; };f"
[alias]
delete-merged-branch = "!f () { git checkout $1; git branch --merged|egrep -v '\\*|develop|master|main'|xargs git branch -d; };f"
git aliases
git config --get-regexp alias | sed 's/^alias.//g' | sed 's/ / = /1
自分の設定しているGitのalias
を全て表示してくれるコマンド
$ git aliases
st = status -s
ch = checkout
br = branch
bra = branch -a -vvv
・・・
このコマンドの使い道としては、例えば
- ペア・モブプロをしている際などに相手の人に自分が設定しているコマンドを伝えたい時
- 設定したコマンド名がどうにも思い出せない時
のような時に使えます。
↓のサイトを参考に設定させてもらいました。
$ git config --global alias.aliases "!git config --get-regexp alias | sed 's/^alias.//g' | sed 's/ / = /1'"
[alias]
aliases = !git config --get-regexp alias | sed 's/^alias.//g' | sed 's/ / = /1'