Gitの新しいコマンドのswitchとrestoreに慣れたい
しばらく前にGitの新しいバージョンがリリースされ、そこで git switch
と git restore
なるコマンドが使えるようになったことは知っていました。
しかし、これまでの慣れというものがあり、どうしても git checkout
を使ってしまっていました。
先日、ふと新しい環境(つまり新しいGit)を操作していて、 git status
を打つと以下のように表示されました。
$ git status On branch hoge-branch Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory)
git restore <file>...
と表示されています。
古いバージョンだと git checkout -- <file>...
だったはずです。
これを見た瞬間にいつまでも git checkout
だけを使っていたらダメだなと思い、使い方を調べた次第です。
ただ、switchもrestoreも THIS COMMAND IS EXPERIMENTAL. THE BEHAVIOR MAY CHANGE.
らしいので、注意は必要そうです。
git switch
ブランチを切り替えるためのコマンドです。
旧: git checkout another-branch 新: git switch another-branch
めちゃくちゃわかりやすい名前になっていると思います。
なぜ最初からこうじゃないのか。
新規でブランチを作ってそのままそのブランチに切り替えることもできます。
旧: git checkout -b new-branch 新: git switch -c new-branch
これまで、 git checkout
は git c
、 git checkout master
は git cm
、 git checkout -b
は git cb
になるようにエイリアスを設定していました。
これを機に、 git s
とエイリアスを張りたいところですが、switchのsがstatusのsとかぶって微妙につらいところです。
git restore
変更を復元するためのコマンドです。
旧: git checkout README.md 新: git restore README.md
ステージングにインデックスされた状態からadd前に戻すためには以下のようにします。
旧: git reset HEAD README.md 新: git restore --staged README.md
変更をなかったことにするのは git resrote
でわかりやすい気がしますが、addを取り消すのは git reset
のままの方がなんとなく好きです。
文句を言っても仕方ないのですが。