ブランチを使う(Gitを知ろう)

Gitについて学習する連載の5回目です。前回の記事はこちらになります。 hirocom777.hatenadiary.org

ブランチを使う

前回は、変更履歴を利用する方法をご紹介しました。これだけのことができれば、簡単なドキュメントやソフトウェアの開発には利用できると思います。

f:id:HiroCom777:20210628220721j:plain

でも大概の場合、開発とは一筋縄では行かないものです。そんな時のためにGitには逃げ道が用意されているんですよ。今回は、この逃げ道であるブランチ(分岐)について取り組んで見ようと思います。

管理を分割する

ドキュメントやソフトウェアの開発で、順調に進んでいる間はどんどん改版していけば問題ないです。でも大概の場合、開発途中で『ひょっとしたら、こうした方がいいのでは?』とか、『別の方法も試してみたいんだけど?』とか、色々疑問がわいてきます。色々やってみたいのだけれども、現在の状態に影響を与えたくはない・・・

そんな時のために、Gitではブランチという機能があります。今まで紹介したGitの使用例では、1つの開発を一直線に記録していきました。できるのは後戻りだけです。ブランチを使うと、開発の流れを分岐して記録できます。分岐の大本はそのままにしておいて、分岐した側で色々な作業が可能です。1つのリポジトリの中で複数の作業が可能になるわけです。

ブランチを使ってみる

それでは前回の状態(コミットを3回実行した状態)から進めていきたいと思います。まず、新しくブランチを作りましょう。ブランチの名前は、'branch-test'としたいと思います。

Git branch ブランチ名

で、新たにブランチを作ることができます。これで'branch-test'というブランチができあがりました。続いて以下を入力してみてください。

Git branch

以下のような画面になったと思います。

f:id:HiroCom777:20210628220934j:plain

Git branchで現在のリポジトリ内のブランチ一覧が確認できます。現在、'branch-test'と'master'の2つのブランチがあることがわかります。'master'は最初に'Git init'でリポジトリを作成してコミットした際にできたブランチです。今まではmasterブランチ上で作業していたんですね。それでは、branch-testブランチに切り替えてみましょう。

Git checkout ブランチ名

でブランチを切り替えることができます。続いて、Git branchでブランチ一覧を確認してみましょう。

f:id:HiroCom777:20210628220956j:plain

先ほどはmasterの先頭に'*'が付いていましたが、branch-testの先頭に表示されるようになりました。ディレクトリ表示の右側にある表記(master)から(branch-test)に変わりました。ここを確認することで現在どのブランチにいるかがわかります。リポジトリの内容とファイルも確認してみましょう。

f:id:HiroCom777:20210628221111j:plain

ちゃんとコピーされているみたいです。

切り替えたブランチで作業してみる

それでは切り替えたブランチで作業してみましょう。手始めに、前回と同じように最初のコミットに戻って見たいと思います。

Git reset --hard コミットID

で、コミットIDで指定したコミットに戻るんでしたね。早速入力してみましょう。

f:id:HiroCom777:20210628221157j:plain

git logで確認すると、ちゃんと最初のコミットに戻っているみたいです。ファイルも1つだけになっています。こちらもファイルが1つになっています。ファイルの内容も最初のコミットの状態に戻りました。対象のフォルダーをWindowsで開いてみるとファイルが1つになっていることがわかります。

それではこの状態でmasterブランチに戻ってみましょう。Git checkout masterで戻ってみます。

f:id:HiroCom777:20210628221420j:plain

こちらは元のままです。Windowsでフォルダーを確認してもファイルが2つになっていて内容もそのままです。branch-testブランチで実施した作業はmasterブランチには影響していないことが判りました。

過去のコミットを確認したいとき

前回もお話した通り、できるからと言って何かにつけてコミットを戻したりしているとトラブルの原因になりかねません。でも、過去のコミットを確認したいときもある・・・そんな時には今回の様にブランチを作成して、そのブランチ上で確認するといいと思います。また、現在どのブランチ上にいるかを常に意識して作業しましょう。

今回作ったブランチは、役目を終えたので削除しておきましょう。

Git branch -d ブランチ名

でブランチを削除できます。以下の様になると思います。

f:id:HiroCom777:20210628221449j:plain

ブランチはmasterだけになりました。

次回はマージ

いかがでしたでしょうか?ブランチはとても便利ですね。次回は、ブランチで作業した内容をおおもとに反映させて見たいと思います。お楽しみに!! hirocom777.hatenadiary.org

Gitを知ろうの連載記事はコチラからどうぞ