gitコマンド「checkout」の使い方、オプション。プチトラブル事例を紹介。

gitコマンド「checkout」の使い方、オプション。プチトラブル事例を紹介。

gitで作業し始めて、コマンドのオプションなど 備忘録を記します。

checkoutの使い方

Gitのチェックアウト(checkout)とは、一言で言うと「ブランチを切り替えたいとき」に使用するコマンドです。

私は、普段ブランチの切り替えはソースツリーから行っていますが、
既存のブランチから新規ブランチを作成する場合、ターミナルからコマンドを使用しています。

↓ソースツリーでのブランチ切り替え(◯が現在のブランチ)

既存のブランチに切り替えを行う場合

git checkout ブランチ名

上記のコマンドでブランチの切り替えを行うことが出来ます。

新規のブランチに切り替えを行う場合

git checkout -b ブランチ名

上記のコマンドで新規ブランチを作成し、同時に切り替えを行います。 オプション:-b

強制的にブランチの切り替えを行う場合

git checkout -f  ブランチ名

上記のコマンドで強制的に切り替えを行います。
※通常、変更が残っている場合ブランチの切り替えは中断されます。
※変更を破棄しても良い場合に上記のオプションを使用してください。
オプション:-f

トラブル事例

トラブルというと大げさですが、
コマンドについてちゃんと理解出来ていないことで起きた事象を紹介します。

通常時の作業手順

いつもの手順、

1.masterからdevelopに切り替え

git checkout develop

2.developから新規作業ブランチを作成

git checkout -b 作業ブランチ名

3.コミット後、作業ブランチをdevelopにpush

git push origin 作業ブランチ名

4.git上でpull request

通常、上記の流れで作業・反映を行っています。

トラブル時の手順

初めて作業をするリポジトリをクローン

ローカルにてmasterからdevelopにcheckout

その際、-b のオプションを付けたコマンドを叩いてしまいました。
そうすると、developから新規作成した作業ブランチもoriginがmasterになってしまいます。

pull requestの際にdevelopじゃなくてmasterにpushしてるじゃん!?
という事がありました。

急遽リモートの作業ブランチとローカルの新規developを削除して、 再度、オプション無しのcheckoutコマンドにて切り替えを行いました。

ブランチのoriginを確認するコマンド

git show-branch | grep '*' | grep -v "$(git rev-parse --abbrev-ref HEAD)" | head -1 | awk -F'[]~^[]' '{print $2}'