こんにちは、エンジニアのオオバです。
非エンジニアにとってgitは難しい。
そもそも git と GitHub の違いも難しい。
- git はアプリケーション
- GitHubはWebサービス
正直そんなことはどうでも良いです。
ところで仕事をしていて、
「オオバさん、ブランチをどこから切ればよいですか?」
と非エンジニアの方から聞かれるときがあります。
そもそも質問者は自分でブランチを切ることが
わかっているフェーズまで来ている。
ということは かなりのgit熟練者 。
ただしgit熟練者でもブランチの切り方は難しいんだなと実感。
そこで本記事ではブランチを切るときの迷いをなくす方法を
解説したいと思います。
これを読めば今後 ブランチを切る迷いがなくなるでしょう。
マージ先からブランチを切る
結論を簡単にまとめます。
- マージ先のブランチを切る
- ブランチは最新状態で切る
- 最新状態で切る理由はコンフリクト回避と先祖還り回避のため
- 迷ったときはマージ先のブランチを確認する
基本方針として「最新の状態からブランチを切る」でOKです。
理由は コンフリクトを回避するため。
また、古い状態で作業をすると
修正した箇所が元に戻ってしまう先祖還りも発生 するからです。
ただし、最新の状態がどこなのか、わからなくなることもあります。
そういうときは マージ先のブランチ を
最新状態にするというのが答えになりますが、
わかりづらいですよね。
このあたり、わかりやすく解説していきます。
👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!
gitで「ブランチを切る」とは自分の作業環境を作成すること
![【UIデザイナー向け】もう迷わないgitのブランチを切る場所_0](https://i.gyazo.com/2face892714cda8114bd863bae03c291.png#750__354)
ブランチとは自分の作業環境です。
自分の作業環境を作ることを「ブランチを切る」と言います。
複数人で開発していると同時多発で作業が発生します。
メンバーがそれぞれブランチを切って作業。
![【UIデザイナー向け】もう迷わないgitのブランチを切る場所_1](https://i.gyazo.com/47f864eb68ba0577f777121a482bc715.png#750__291)
本流ブランチにマージしていきます。
多人数開発を円滑に進めるためにgitはよく使われますね。
なぜ最新状態からgitのブランチを切るのか
最新状態からgitのブランチを切る理由は2つ。
- コンフリクト回避
- 先祖還り回避
特に画像をあつかうUIデザイナーの場合は、
コンフリクト回避 が主です。
つまりメンバーとの作業被りによって
片方の作業を削除しないといけない状況を回避 したいのです。
![【UIデザイナー向け】もう迷わないgitのブランチを切る場所_2](https://i.gyazo.com/2816f5c3a4bd5fe01400c6ab7723b187.png#750__338)
ブランチA、ブランチBの両ブランチで
同じ画像ファイル image.png を編集したとします。
ブランチAは先に本流にマージ。
ブランチBはコンフリクトでマージできません。
この場合 どちらかの作業を打ち消す 必要が出てきます。
詳しくはこちらの記事で解説しているのでオススメです。
![](https://i.gyazo.com/1822fe58154553409a225a9ef048f6ee.jpg#1920.0__1280.0)
【Unity】Sourcetreeでコンフリクトを直す方法
Unity開発中のトラブルで発生してほしくないことの1つは「コンフリクト」。対処法を正しく理解して自分自身で解決できるようになりませんか?
コンフリクトすると、作業のやり直しが発生し、
時間のロスが大きい です。
作業効率を上げるためにも
最新状態にしてから作業の開始をオススメします。
![【UIデザイナー向け】もう迷わないgitのブランチを切る場所_3](https://i.gyazo.com/784886c7e5cad50157a6816b6ea95ac0.png#750__288)
ブランチAがマージされたあとに
ブランチBを切って作業します。
すると 正常にマージ されます。
迷ったときはマージ先のブランチを最新化してブランチを切る
最新ブランチは1つではない ときもあります。
複数機能を同時開発しているときです。
大事なのは マージ先のブランチを最新化してブランチを切ること です。
例としてガチャ機能を長期で開発しているケースを取り上げます。
mainブランチからガチャ機能ブランチを切りました。
![【UIデザイナー向け】もう迷わないgitのブランチを切る場所_4](https://i.gyazo.com/2a28aaa89d36301ecf24d7d26057772f.png#750__295)
ここで ガチャ機能だけに必要な画像を追加する作業 が発生したとします。
このときに切る最新のブランチは、
ガチャ機能ブランチ です。
mainブランチではありません。
重要なのは 「どこにマージする作業なのか?」 ということなのです。
ガチャに対して画像を追加したいため、
マージ先は「ガチャ機能ブランチ」です。
![【UIデザイナー向け】もう迷わないgitのブランチを切る場所_5](https://i.gyazo.com/0c26cf8d8b1ab581e6e7007a57e27ca5.png#750__297)
つまり 「ガチャ機能ブランチ」を最新化したあと
「ガチャ画像作業ブランチ」を切る
というのが正しいフローです。
迷ったときは、 マージ先のブランチを最新化してブランチを切りましょう。
まとめ : もう迷わないgitでブランチを切る場所
記事の内容を簡単にまとめます。
- 「ブランチを切る」とは自分の作業環境の作成
- コンフリクト回避のためにデータを最新化
- ブランチを切る場所はマージ先のブランチ
こんな感じです。
大規模な開発になるとブランチ数も多くなり
Sourcetreeが見づらくなりますよね。
こういうときに焦ったりすることもあるかも知れません。
いったん落ち着いて、
どのブランチにマージするか ということを思い出してください。
この1点さえ間違えなければ大丈夫。
事故は起きません。
どうしてもブランチを切る場所に迷うなら 、
今日からできることを紹介します。
エンジニアや周りのメンバーに
マージするブランチの確認 をしましょう。
「この機能はどのブランチにマージすれば良いですか?」
このような聞き方で伝わります。
マージ先のブランチが明確になるということは、
ブランチを切る場所も決まりますよね。
もう迷うことはありません。
ぜひとも マージ先のブランチを確認してみましょう。
![](https://i.gyazo.com/14223b08bd648b4279cfcf8914c01a2f.jpg#1280.0__853.0)
この記事が気に入ったらフォローしよう
「Unity初心者大学」というUnity初心者向けのYouTube始めました!!
ぜひチャンネル登録をお願いします!
最後まで読んでいただきありがとうございました!
すばらしいgitライフをお過ごしください。