本記事はFIXER Advent Calendar 2024( FIXER Advent Calendar 2024 ~ Tech編 ~ )12月21日の記事です。
MMS。(マジ みじかく したい)
どうも、加藤怜です。
gitコマンド、長いとだるいですね。
git pull --rebase origin develop とか git push --force-with-leaseとかgit config --global --editとか。
これがgit rebdevとか、git pushfとか、git configgeになったら嬉しくないですか?
というわけでn番煎じですが布教・備忘録としてGitエイリアスについて書きます。
最低限のコストで、少しでも効率的に書けるようになれれば幸いです。
※この記事は"gitコマンドは理解しているけどエイリアスは使っていない層向け"です |ところどころコマンドの詳細など省いて説明しています⚠️ | もっと良いエイリアス、便利なエイリアスがあったらぜひ教えて下さい!
gitの基本的なコマンド・基礎については江藤さんのこちらの記事をご覧ください!!
Gitエイリアスとは
公式曰く、
Gitの使い勝手をシンプルに、簡単に、わかりやすくしてくれる、エイリアスです。
だそうです。
要は、Gitに存在するコマンドを置き換える機能です。
commit -> cm、branch-> b など、効率よくコマンドを打てるようになりますね!
Gitエイリアスの設定方法
ターミナルで
git config --global alias.ci commit
あるいは
git config --global --edit
で設定可能です。
前者は1つずつ設定するコマンド、後者はエディタで直接.gitconfigを設定するコマンドです。(.gitconfigファイルは例で提示します)
例(筆者が設定しているエイリアス)
筆者の環境はMacです。よく使うコマンドを設定しています。
コピペして使っていただいて構いません!
[alias]
alias = !git config --list | grep ^alias\\.
b = branch
com = commit -m
configGE = config --global --edit
delAllBranch = !"git branch | grep -v 'develop' | xargs git branch -d"
deleteAllBranch = !"git branch | grep -v 'develop' | xargs git branch -d"
dev = switch develop
logone = log --oneline
sl = stash list
st = status
ss = stash save
sp = stash pop
sw = switch
rebdev = pull --rebase origin develop
rebcon = rebase --continue
resohe = reset --soft HEAD^
rest = restore
pushf = push --force-with-lease
pushu = push -u origin HEAD
pop = stash pop
よくある流れとしては、ブランチ切る-> ステージング->コミット->プッシュ(アップストリーム)ですね。
エイリアスなしだと
git switch -c hoge -> git add hoge.txt -> git commit -m "hoge" -> git push -u origin HEAD
エイリアスを使うと
git sw -c hoge -> git add hoge.txt -> git com "hoge" -> git pushu
コマンド1個分くらい短くなりました!よく使うコマンドだけでも設定しておくと幸せになれます。
終わりに
ここまで読んでくださってありがとうございます!
最低限、commit、branch、switch ...etcなど、よく使うものだけでも設定してみてはいかがでしょうか。
今すぐ"git config --global --edit"して自分好みにカスタマイズしてください!
TL;DR
ここからは余談です。
注意点 ⚠️
デメリットです
- 元のコマンドを忘れる(コマンド理解が浅くなる・他のPC触るときに戸惑う)
- 覚える必要がある
コマンドに慣れてから使いましょう!
(効率を求めて基礎を疎かにしない、という自戒を含みます)
Tips 💡
エイリアスには大文字小文字の区別がない
筆者の例では"configGE"という設定がありますが、コマンドを打つ際は "configGE" も "configge" もどちらも使えます。
(詳しくは参考資料2)
エイリアスで外部コマンドを使う
エイリアスの先頭に!を付けると、ターミナルのコマンドが使えます
エイリアスにエイリアスを使う
cm = commit
cmm = cm -m
というようにできます。(cmmというエイリアスでcmというエイリアスを使っている)
エイリアスで引数を使う(シェルスクリプト)
addcom = "!f() { git add \"$1\" && git commit -m \"$2\"; }; f"
$1, $2にコマンドライン引数が入ります。(gitコマンドではなく、シェルスクリプトの機能)
こうすれば、' git addcom hoge.txt "hoge" ' というように、ステージングとコミットを同時に行えます(ただし1ファイルまたは全てのファイル(.)の指定の場合のみ)
外部コマンドが使えるため、シェル芸っぽく何でもできます。
参考資料
1. https://git-scm.com/book/ja/v2/Git-の基本-Git-エイリアス
2. https://qiita.com/YamEiR/items/d98ba009d2925e7eb305
3. https://www.eficode.com/blog/10-levels-of-git-aliases-beginner-to-intermediate-concepts