SourceTreeでバージョン履歴を分岐したりマージしたりする方法

★気に入ったらシェアをお願いします!


みなさん、こんにちは!
一人Gitなのでたくさんのブランチはそんなに使ってないタカハシ(@ntakahashi0505)です。

非エンジニアのGit初心者向け、GitクライアントツールSourceTreeを使ったバージョン管理の方法をお伝えしています。今回でもうおかげさまで4回目ですね。

前回はこちらの記事です。

SourceTreeでGit管理しているファイルのバージョンをリセットする方法
初心者でもわかるSourceTreeを使った非エンジニア向けGitバージョン管理について、今回の記事では目的のバージョンに戻すコミットのリセット方法とオプションの使い分け方についてお伝えします。

過去に残したバージョン(コミットという名前でした)のうち、目的のバージョンに戻す方法をお伝えしました。

Gitのバージョン管理なら、バージョン別に物理的に異なるファイルをたくさん用意する必要もありませんし、中身を見なくても更新履歴がわかるようになります。

フォルダの中がスッキリするわけです。

さて、今回はバージョン履歴を分岐させるブランチと呼ばれる機能、分岐した履歴を統合するマージと呼ばれる機能について、GitクライアントのSourceTreeを使った方法についてお伝えしていきますね。

これによって、安定バージョンを確保したままのアグレッシブ(?)なファイルやプログラムの実現をすることができますよ。

では、いってみましょう!

ブランチを切ってバージョン履歴を分岐させる

ブランチ(branch)は「枝」という意味ですね。

その名の通り、Gitバージョン管理において分岐点を作って履歴を枝分かれをさせることを言います。

ちなみに朝食と昼食のアイノコはbrunchです。全然別の単語っす。

では早速SourceTreeでブランチを切ってみましょう。

SourceTreeでブランチを切る

分岐を作りたい地点のコミットを選択している状態で上部のアイコン群から「ブランチ」のアイコンをクリック。

SourceTreeでブランチを切る

「ブランチ」のウィンドウが立ち上がりますので、新しく作るブランチの名前を入力して「ブランチの作成」。

SourceTreeでブランチ名前を入力して作成

ちなみに、コンソールでのGitコマンドは

git branch hoge

と書くそうです。

ではSourceTreeの画面を確認してみましょう。

SourceTreeで新しいブランチが追加された

このように、「master」「hoge」が同じコミットに並んでいますね。

左側のメニューでも「ブランチ」の配下に「hoge」「master」と二つになっているはずです。今現在いるブランチは太字で表現されていますので、現在は「hoge」にいます。

分岐したブランチでコミットをしてみる

では、「hoge」にいる状態で別のコミットをしてみましょう。

こんな風に、例えばTest2と書いた行をTest3に変更してコミットをしてみます。

SourceTreeで分岐したブランチでコミット

すると、このように「hoge」だけ次のコミットに移動しましたね。

SourceTreeで分岐したブランチでコミットをした

Gitバージョン管理でのブランチの使いどころとは

ブランチはどんな時に使うかという言いますと

  • 大きな修正や追加を加えたいがちゃんとできるか心配
  • ちょこちょこ直しがあって安定バージョンをわかりやすくとっておきたい

こんなときです。

ブランチを切ってそちらで作業を進めることでmasterを安定バージョンとしてとっておくことができます。

すげー気持ちよくないですか?

ブランチを切り替えるチェックアウトと統合するマージ

分岐したブランチがうまくいった場合、それを安定バージョンのmasterに置き換えたい場合はどうしたらよいでしょうか?

そのときにはGitではマージ(merge)という作業をします。日本語では融合するとか、合併といった意味ですね。

SourceTreeでチェックアウトをする

先ほどの続きにて、ブランチした「hoge」を「master」にマージしたいのですが、この場合は「master」に「hoge」を吸収するイメージになりますので、今いるブランチを「master」に切り替えます。

左側の「ブランチ」のメニューで「master」をダブルクリックすると、今いるブランチを「master」に切り替えることができます。

このブランチを切り替える作業をGitでは「チェックアウト」と言います。

このチェックアウトをするGitコマンドは

git checkout master

とするそうです。チェックアウトに関しては完全にGUIツールであるSourceTreeを使ったほうがわかりやすいですね。初心者にはありがたいです。

SourceTreeでマージをする

さて、チェックアウトしましたら、上部のアイコン群から「マージ」をクリック!

SourceTreeでチェックアウトとマージ

すると「マージ」のウィンドウが開きますので、吸収するコミットを選択して「OK」。

SourceTreeでマージするコミットを選択

これにてマージが完了!「master」と「hoge」が同じ場所に移動しましたね。

SourceTreeでマージが完了

まとめ

今回もGitならではの素敵な機能を紹介することができまして大変満足です。

おさらいしますと

  • バージョン履歴を分岐するブランチ
  • ブランチを切り替えるチェックアウト
  • 分岐したブランチを統合するマージ

といった機能とSourceTreeでの操作方法についてお伝えしました。

ちょっとしたファイルやプログラムでしたらmasterだけでも問題ないのですが、一人で作業をしていたとしても何回も時間をかけて提出したり更新をしたりするような資料だったりプログラムだったりでしたら、これらの機能がとても助けになると思います。

安定バージョンを確保して作業を進めるのって、こんなに心が安らぐのか…と思うことでしょう。

というか、このシリーズでは一人で作業をしていますが、複数人で作業をするときは、このブランチとマージでの作業が当たり前になります。

さて、次回はマージしたときに発生する困ったやつ「衝突」を解決する方法についてお伝えしています。

コンフリクトって!?Gitバージョン管理でマージしたときに発生した衝突を解決する
非エンジニアかつ初心者向けにバージョン管理システムGitとそのクライアントSourceTreeの使い方、今回は複数のブランチをマージした際に発生する「衝突」を解決する方法についてお伝えします。

合わせてご覧ください!

連載目次:非エンジニアの初心者向けSourceTreeによるGitバージョン管理

  1. 非エンジニアのためのバージョン管理Git~メリットと導入前の準備
  2. 非エンジニアでもSourceTreeを使えば超簡単にGitでのバージョン管理ができる
  3. SourceTreeでGit管理しているファイルのバージョンをリセットする方法
  4. SourceTreeでバージョン履歴を分岐したりマージしたりする方法
  5. コンフリクトって!?Gitバージョン管理でマージしたときに発生した衝突を解決する
  6. 非エンジニアのためのGitバージョン管理~BitbucketとかGitHubって何?
  7. 非エンジニアのためのGitバージョン管理~Bitbucketの登録とはじめてのプッシュ
番外編: