リポジトリをクローンすると、HEAD は master を指しています。他のローカルのブランチは、ありません。
実際に作業をするときは、master ではないブランチから始めたい、そんなことがよくありますの。
この場合、作業を開始したいコミットへチェックアウトして、ブランチを作成してそのブランチへチェックアウトすることになりますわ。
その手順をまとめます。
コマンドまとめ
# リモートリポジトリのブランチが指す場所にチェックアウト git checkout <remote>/<branch> # ブランチを作成してチェックアウト git checkout -b <branch> # リモートリポジトリのブランチが指す場所に新しくブランチを作成してチェックアウト git checkout -b <branch> --track <remote>/<branch> # <remote>/<branch> の <branch> と同じ名前を付ける場合は次で OK git checkout --track <remote>/<branch>
実践
作業前の確認
リモートリポジトリをクローンした直後から始まります。
$ git log --all --decorate --graph --oneline * 4173e3c (origin/feature1) AAA機能を修正、BBB機能を追加する * 561ab33 AAA機能を追加する * ef0d189 (HEAD -> master, origin/master, origin/HEAD) 安定板1 * b4bf0eb 初期コミット
やり方 1. チェックアウト、ブランチ作成を 2 回のコマンドに分けて行う。
$ git checkout origin/feature1 Checking out files: 100% (43/43), done. Note: checking out 'origin/feature1'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b <new-branch-name> HEAD is now at 4173e3c... AAA機能を修正、BBB機能を追加する $ git checkout -b feature1 Switched to a new branch 'feature1'
やり方 2. チェックアウト、ブランチ作成を 1 回のコマンドで行う
$ git checkout -b feature1 --track origin/feature1 Branch feature1 set up to track remote branch feature1 from origin. Switched to a new branch 'feature1'
または、
$ git checkout --track origin/feature1 Checking out files: 100% (43/43), done. Branch feature1 set up to track remote branch feature1 from origin. Switched to a new branch 'feature1'
作業後の確認
$ git log --all --decorate --graph --oneline * 4173e3c (HEAD -> feature1, origin/feature1) AAA機能を修正、BBB機能を追加する * 561ab33 AAA機能を追加する * ef0d189 (origin/master, origin/HEAD, master) 安定板1 * b4bf0eb 初期コミット
おわりに
以下のページが参考になりました。ありがとう存じます!
以上です。