Skip to main content

git branch, switch, restore コマンド

概要

ブランチ操作周りでは branch, switch, restore, checkout といったコマンドを使う

  • ブランチ作成/削除/一覧 : git branch
  • ブランチ切替 : git switch
  • 手元の変更を捨てる : git restore
  • checkout はミス防止のために基本使わないことにする (switch と restore で代替可)

ブランチ作成

bash
git branch branch-A

ブランチ切り替えのみ

bash
git switch branch-A

そもそも「切り替え」とは

  • HEAD が指すブランチ対象が指定したブランチに切り替わる
  • commit すると そのブランチに入る

ブランチ操作一覧

上の区別は雑だったので、詳細。

コマンド一覧作成切り替えメモ
git brancho
git branch <branch-name>o
git checkout <branch-name>o使わないことにする *1
git switch <branch-name>o
git switch -c <branch-name>oo

削除について

コマンド別の書き方メモ
git branch -d <branch-name>--deletemerge 後でないと消せないようになってる(安全・・!)
git branch -D <branch-name>--delete --forcemerge しないで捨てる場合に使う

手元の変更を捨てる + addを取り消す

  • 「手元の変更を捨てる」とは「stage (add) されていたらその時点のファイルで、されていなければ HEAD 時点のファイルで上書きする」という意味で記載。
  • restore コマンドは 手元を捨てるのと add を取り消すのとがセットで使えるが、何で対になっているんだろうか直感的でない気がする
コマンド意味メモ
git checkout -- <filename>手元の変更を捨てる使わないことにする *1
git restore <filename>手元の変更を捨てるstage (add時点のファイル) または HEAD で上書きされる
git restore --staged <filename>add を取り消す(手元の変更は書き換わらない)
  • *1. checkout は、引数にブランチ名を指定するかファイル名を指定するかで意味が変わるので、ミス防止のために使うのをやめることにする
    • さらに、ファイル名のつもりで書いてもブランチ名と解釈されてしまう場合があるので、 -- をつけるといったことも気にしないといけないので、そういう意味でも使うのをやめる

以下広告