これは覚えることがあまり無いですが、「branchを切り替えて編集」がまだ慣れません…
はじめに
基本の流れ
Git自体はじめての方は、まずはこちらからどうぞ。
【Git勉強中】操作に慣れてきたので、流れを整理してみました。 - ゆるおたノート
凡例
記号・用語 | 意味 | 説明 |
---|---|---|
$ |
「コマンドライン」で使えるコマンド | 通常、Gitを始めとする「シェルスクリプト」系の説明では、コマンドの文頭に$ をつけて表現されることが多いようです。当記事でもそれに倣って記載しています。 実際にコマンドを入力するときは、 git~ 以下をコピペしてください。 |
# |
コメント | 補足事項など。 (対話モードでは使えません、、、) |
<> |
編集点(という表現で良いのかな…?) | 任意の値(名前、識別子など)を入力してください。 |
(コミットの)識別子 | コミットごとに付与される半角英数字7桁の番号。 | SHA-1というハッシュ値だそうです。 当記事では <コミット> と表記します。 |
【1】ブランチのリストを出力して現在地を確認
その名もbranch
コマンド。分かりやすい名前だ…
[a]ローカルリポジトリのみ表示
書き方
下記3件のコマンドは同じ結果が出力されます。
オプションなし(デフォルト)
$ git branch
オプションつき
$ git branch --list
オプションのショートハンドつき
$ git branch -l
なお、これ以降、--list
と-l
のようにオプション付きのものを2行続けて書いている場合は、「同じ意味のコマンド」を指しているものとします。
例
現在のブランチは、*
(アスタリスク)でハイライトされます。
(bash等、使用するエディタによってはブランチ名に色も付きます。)
# 入力 $ git branch # 結果 branch1 * branch2 master
[b]リモートリポジトリも含めて表示
書き方
$ git branch -a
$ git branch --all
例
# 入力 $ git branch -a # 結果 branch1 * branch2 master remotes/origin/HEAD -> origin/master remotes/origin/master
【2】(旧)ブランチの切り替え
checkout
コマンドを使用します。
いったん現在のブランチから退出(チェックアウト)して、目的のブランチに移動するイメージなんですかね?
<2020/09/16追記>
Gitのバージョンアップにより、新しいコマンドが別途追加されました(後述)。
[a]既存のブランチへ切り替え
書き方
$ git checkout <目的のブランチ名>
例
# 入力 $ git checkout branch1 # 結果 Switched to branch 'branch1'
[b]ブランチを新規作成して切り替え
書き方
ブランチを作成することを「ブランチを切る」と呼ぶみたいです。かっこいい。
$ git checkout -b <目的のブランチ名>
例
# 新規作成して切り替え $ git checkout -b branch3 # 結果 Switched to a new branch 'branch3' # 切り替えできたか確認 $ git branch # 結果 branch1 branch2 * branch3 # 現在のブランチに`*`がつく master
[c]現在の変更内容を破棄して強制的に切り替え
書き方
Gitが認識しないファイルで作業してしまった場合や、作業ツリーに変更があった場合などに使えます。
$ git checkout -f <目的のブランチ名>
$ git checkout --force <目的のブランチ名>
例
# 入力 $ git checkout -f branch1 # 結果 Switched to branch 'branch1'
【2】(ver. 2.23~)ブランチの切り替え
<2020/09/16追記>
この記事を投稿した後に、Gitのバージョンアップでcheckout
コマンドが下記2点に分離されました。
コマンド | 役割 |
---|---|
switch |
ブランチを移動する |
restore |
コミット前の修正を取り消す |
具体的でより使いやすいですね!
- 詳しい情報は公式ブログ様(英語)へどうぞ。
Highlights from Git 2.23 - The GitHub Blog
[a]既存のブランチへ切り替え
書き方
$ git switch <目的のブランチ名>
[b]ブランチを新規作成して切り替え
書き方
$ git switch -c <目的のブランチ名>
$ git switch --create <目的のブランチ名>
[c]現在の変更内容を破棄して強制的に切り替え
書き方
$ git switch -f <目的のブランチ名>
$ git switch --force <目的のブランチ名>
$ git switch --discard-changes <目的のブランチ名>
discard
で「破棄する」という意味です。
このシリーズについて
Gitのコマンドについて、勉強しつつ記事にまとめています。
誤り、分かりづらい等ありましたら、ぜひコメント欄やTwitter、お問い合わせフォーム等でご教示ください!
次回
【Git勉強中】ステージに上げたり下げたり。 - ゆるおたノート
連載目次
- 【Git勉強中】操作に慣れてきたので、流れを整理してみました。 - ゆるおたノート
- 当記事【Git勉強中】ブランチの移動を使い分けたい - ゆるおたノート
- 【Git勉強中】ステージに上げたり下げたり。 - ゆるおたノート
- 【Git勉強中】ステージした変更を記録する - ゆるおたノート
- 【Git勉強中】あっ!そのコミット訂正させてください! - ゆるおたノート
- 【Git勉強中】自分のコミット履歴を提出する - ゆるおたノート
- 【Git勉強中】リポジトリの作成と接続 - ゆるおたノート
参照
【Git入門】チェックアウト(checkout)とは?使い方を基礎から解説! | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト git コマンド branchの作り方 - Qiita
<2020/09/16追記>
Git - git-checkout Documentation
Git - git-switch Documentation