gitコマンド、長いしだるいしMMS【Gitエイリアス】
2024-12-21
azblob://2024/12/20/eyecatch/2024-12-21-git-alias-mms-000.png

本記事は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の使い勝手をシンプルに、簡単に、わかりやすくしてくれる、エイリアスです。

2.7 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