- 公開日
git switch養成ギプス 〜git checkoutからの卒業〜
本記事はGit Advent Calendar 2020 9日目の記事です。
git 2.23 にて git switch
, git restore
というコマンドが導入されたことはみなさん既にご存知のことかと思います。
One of our favorite open source projects has a big update... Git 2.23 is here!
— GitHub (@github) August 16, 2019
Read all about the latest release and new features ✨https://t.co/fpQICF8Onc
雑に要約すると「git checkout
に機能もたせすぎてわかりにくくなっちゃったから、git switch
, git restore
でわかりやすくしたよ!」ってことだと思います。
一方、まだgit switch
に移行しきれていないという人も多くいるのではないかと思います。実際、私の周囲でも今もgit checkout
を使い続けている人をちらほら見るので、本記事ではgit switch
に移行していくためのコツを書いてみます。
結論
switch
のaliasを設定しろ、そしてcheckout
のaliasを捨てろ
git checkout only時代
checkout
というコマンドは長ったらしいのでaliasを設定して運用していたのではないでしょうか。
僕の場合、下記のようにaliasを設定しました。
# ~/.gitconfig
[alias]
co = checkout
ただこれだと git checkout
をそのまま便利に使い続けてしまうので、思い切ってこいつを削除してしまうと良いかと思います。
もしくは下記のようにメッセージ出すとかでもOK。
# ~/.gitconfig
[alias]
co = !echo "Use git switch/restore instead!"
git switch時代
git switch
を使いやすくするために下記のようなaliasを設定します。
# ~/.gitconfig
[alias]
sw = switch
swc = switch -c
こうすることで checkout コマンドが下記のように生まれ変わります。
main branch へ切り替え
before:
$ git checkout main
after:
$ git switch main
# sw = switch を設定している場合
$ git sw main
main branch から hoge branch 作成
before:
git checkout -b hoge main
after:
$ git switch -c hoge main
# sw = switch -c
g swc hoge main
余談
git restore
に対する良いaliasは今のところ見つかっていません。
git reset
とalias的に名前空間かぶつかるので、自分の中でしっくりくる命名できていないんですよね。何かいいアイディアのお持ちの方は教えてください。