Gitの小ネタおれおれAdvent Calendar 2022 – 09 日目

実は - というショートカット?があります。

ブランチの切り替えで

$ git switch main
$ git switch myFeature
$ git switch -

これで main ブランチに戻ります。

N 回分戻る指定

例えば 3 回戻るのに git switch @{-3} というのが利用できます。- は @{-1} と同等とのことです。

You can use the @{-N} syntax to refer to the N-th last branch/commit switched to using “git switch” or “git checkout” operation. You may also specify - which is synonymous to @{-1}. This is often used to switch quickly between two branches, or to undo a branch switch by mistake.

マージで

switch 意以外でも使えます。

$ git switch main
$ git switch myFeature
$ git merge -

これで main が myFeature へマージされます。

この後にさらにまた git switch - して git merge - すると、今度は myFeature が main へマージされますね。

リベースで

$ git switch main
$ git pull
$ git switch myFeature
$ git rebase -

これで myFeature を main へリベースして繋ぎ直せます。

そしてディレクトリーで

何が元ネタなのかは知らないけれど、Git に限らずこの - が使える場面があります。

$ cd ~/my-project/
$ cd /var/log/http/xxx
$ cd -

これで ~/my-project/ へ戻ってこられます。

たぶんシェルの機能だと思う、知らんけど。bash では動いてます。

注意点として、あくまでひとつ前を指すだけなので、先にまた移動しているともう戻っては来られません。

pushd も便利

ディレクトリーの位置を記憶して積み重ねることができるコマンドです。

  • pushd – 位置を記憶
  • dirs – 記憶しているもの一覧
  • popd – 最後に記憶した位置へ移動、記憶から削除

詳しくはこちら。

Git じゃないけどね。