git switch養成ギプス 〜git checkoutからの卒業〜

(image)git switch養成ギプス 〜git checkoutからの卒業〜

本記事はGit Advent Calendar 2020 9日目の記事です。

git 2.23 にて git switch, git restore というコマンドが導入されたことはみなさん既にご存知のことかと思います。

雑に要約すると「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的に名前空間かぶつかるので、自分の中でしっくりくる命名できていないんですよね。何かいいアイディアのお持ちの方は教えてください。