1.まえがき
前回はGitの基礎として基本的な用語と使い方について学習しました。
今回は、前回詳しく解説できなかったブランチなどの機能について、もう少し深くまとめてみようと思います。
2.ブランチとは
ブランチとは、
履歴の流れを分岐して記録していくためのものです。
プロジェクトから枝分かれさせることをよく「ブランチを切る」といいます。
分岐したブランチは他のブランチの影響を受けないため、同じリポジトリ中で複数の変更を同時に進めていくことができます。
また分岐したブランチは他のブランチを統合することができ、複数人でブランチを切って開発した内容を1つにまとめることが出来ます。
3.マージとは
また、
分岐したブランチは他のブランチと合流(マージ)することで、一つのブランチにまとめ直すことができます。
チームのメンバーは、他のメンバーの作業の影響を受けないように、メインのブランチから自分の作業専用のブランチを作成します。
そして作業の終わったメンバーは、メインのブランチに自分のブランチの変更を取り込んでいきます。
このようにすることで、他のメンバーの作業による影響を受けることなく、自分の作業に取り込むことができます。
また、作業単位で履歴を残すことで、問題が発生した場合に原因となる変更箇所の調査や対策を行うことが容易になります。
4.ブランチの種類
・masterブランチ
リポジトリに最初のコミットを行うと、Gitはmasterという名前のブランチを作成します。
そのため、以後のコミットはブランチを切り替えるまでmasterブランチに追加されていきます。
・統合ブランチ
統合ブランチとは、リリース版が何時でも作成可能なようしておくためのブランチです。
また、トピックブランチの分岐元としても使用します。そのため、安定した状態を保っておくことが重要です。
何らかの変更を行う場合は、トピックブランチを作成して作業を行うことが多いです。
また、Jenkins等のCIツールを使用した自動ビルドやテストはこのブランチを使って行います。
通常、masterブランチを統合ブランチとして使用します。
・トピックブランチ
トピックブランチとは、機能追加やバグ修正といったある課題に関する作業を行うために作成するブランチです。
複数の課題に関する作業を同時に行う時は、その数だけトピックブランチが作成されます。
トピックブランチは安定した統合ブランチから分岐する形で作成し、作業が完了したら統合ブランチに取り込むという使い方をします。
5.ブランチの切り替え
作業するブランチを切り替えるには、チェックアウトという操作を行います。
チェックアウトを行うと、まず移動先のブランチ内の最後のコミットの内容がワークツリーに展開されます。
また、チェックアウト後に行ったコミットは、移動後のブランチに対して追加されるようになります。
・HEAD
HEADとは、
現在使用しているブランチの先頭(最新)を表す名前です。
デフォルトではmasterの先頭を表しています。
HEADが移動することで、使用するブランチが変更されます。
・stash
まだコミットしていない変更内容や新しく追加したファイルが、
インデックスやワークツリーに残ったままで他のブランチへのチェックアウトを行うと、
その変更内容は元のブランチから、移動先のブランチに対して移動します。
ただし、移動先のブランチで、同じファイルが既に何らかの変更が行われている場合はチェックアウトに失敗します。
このような場合は、変更内容を一度コミットするか、またはstashを使って一時的に変更内容を退避させてからチェックアウトしなければなりません。
stashとは、
ファイルの変更内容を一時的に記録しておく領域です。
stashを使うことで、ワークツリーとインデックス中でまだコミットされていない変更を一時的に退避させることができます。
退避させた変更は後から取り出して、元のブランチや別のブランチに反映させることができます。
7.終わりに
まだまだGitの機能やコマンドはありますが、今回はここまでとします。
ありがとうございました。
댓글
댓글 추가