王様のじゃないブランチのはなし『 git branch 』
いよいよブランチ ( branch ) の話をします。
ただ、深くまで突っ込むと慣れない方には結構しんどいのであまり難しいことまでは解説しません。
ブランチとは何 ❓
🔘 日本語に訳すと
(木の)枝、枝状のもの、支流、・・・ , etc
となります。Git の話してたのに枝とか支流ってなんやねん👿
って感じですよね。
🔘 イメージでまずはつかむ
うん、枝とか支流っぽいですね。
🔘 もう少し解説
こんな感じで、
● : コミット
線 : ブランチ
です。
古いコミットが(この画像では)下から上に線でつながっているわけです。
この(樹形)図でいうと、真っ直ぐな線(青と緑がありますね)から分岐したピンクの●につながる線がありますね。
これもブランチです。
緑の線のブランチは最終的に真っ直ぐな線につながって(合流して)ますね。これは別記事で紹介しようと思いますがマージされたってことです。
🔘 もう少し深堀
✔ 履歴(コミット)の流れを分岐して記録していくためのもの
✔ 並行して複数の作業をしていくのに便利
といった感じです。
例えば、「20210127何たら会議」みたいなフォルダがあったとして、
その中に2021年1月27日に行われる会議の資料ファイル(Excel, Word, PowerPoint)を作成し発表する場合、
「20210127何たら会議」フォルダをローカルリポジトリ(git init)として
✔ Excel ブランチ
✔ Word ブランチ
✔ PowerPoint ブランチ
と分けて更新していき、最終的にマージして会議資料ファイル群をまとめたフォルダとして完成させて発表に臨む、みたいな。
ブランチの使い方は、結構ややこしいので「非エンジニアで自分だけで使うならこんな感じでどうかな?」的な運用方法があるので別記事で書きますね。
リモートリポジトリも使ったほうがイイので、それを紹介してからですかね。
まぁ上の例みたいな使い方も一例ですね。
ブランチを作成してみる
俗に『ブランチを切る』とも言われます。
こんな感じです。「緑の○」から「紫の○」に矢印が何やらつながっていますね。
これはどんな状況かというと、"first commit" した状態の『 master 』ブランチのコミットから『 draft 』ブランチを切った状態です。
master ブランチは以前の記事で軽く補足しました。
軽く補足しておくと、インストールしたときに 『 default branch name 』 を master にしましたので、今はコイツだけがあります。
⚫ コマンドでブランチを切る
「 git branch 適当なブランチ名 」という風にコマンドを打ちます。
mevius@SurfaceLaptop MINGW64 ~/Documents/Gitdemo (master)
$ git branch draft 👈新しく作成するブランチ名を記載
$ git branch 👈現在存在するブランチを表示
draft 👈できてる
* master 👈「*」とついているブランチに現在いる
ブランチを切り替える
以前の記事で書きましたが、「 git checkout 」コマンドで切り替えます。
mevius@SurfaceLaptop MINGW64 ~/Documents/Gitdemo (master)
$ git checkout draft
Switched to branch 'draft' 👈draftブランチに切り替わった
ちなみに、「 git checkout ブランチ(branch)名」 としてブランチを切り替えるときにも使ったりします。
🔵 SourceTree でブランチを切る
画面上部にある、「ブランチ」をクリックします。
すると、このような画面が出てくるので、新規ブランチ名を入力し、「ブランチを作成」ボタンをクリックです。
この画像の例では、今いるところ(HEAD)のコミットからブランチを切りましたが、「指定のコミット」のところで任意のコミットを選んでそこから支流を作ることも可能です。
画面が切り替わると
はい、できました。ここで『 ○ draft 』となっていますね。
コマンドの場合で表示されていた「*」と同じ意味で、現在どこのブランチにいるか、つまり「次にコミットした際にどのブランチが伸びるか」を指し示しています。
補足
のように☑をつけましたが、これをコマンドやる場合
『 -b 』オプションを付けて「 git branch 」コマンドを打ちます。
mevius@SurfaceLaptop MINGW64 ~/Documents/Gitdemo (master)
$ git branch -b draft
Switched to a new branch 'draft' 👈新しく作成したdraftブランチに切り替わったとのこと
mevius@SurfaceLaptop MINGW64 ~/Documents/Gitdemo (draft) 👈表示も変わった
$ git branch
master
* draft 👈間違いない
これで、新規でブランチを作成し、その作成されたブランチにチェックアウトまで一気にやってくれます。
今回はここまで 🔚
いかがだったでしょうか?
「じゃあ実際ブランチってどうやって活用していったらいいの?」という感じかと思いますので、ブランチの運用の話は、また次回以降したいと思います。
私はこんな感じで使ってるよ~って運用があるのですが、リモートリポジトリの話をしてからの方が良いので。
最後までお読みいただきありがとうございました 😊