GitのブランチとマージはGitを使う上で避けては通れない機能といっても過言ではない。基本的に修正を行う場合にブランチを作って、ブランチを切り替えつつ作業を行う。ブランチの作成方法にはいろいろあるが、「Successful Git」で紹介されているブランチモデルを紹介しよう。詳しくは以下を参照してほしい。
このモデルでは、次のようなブランチを作成することが推奨されている。
「Successful Git」で紹介されているブランチモデルは「Git Flow」と呼ばれている。VSにもGit Flowのブランチモデルを支援する拡張機能が公開されている。リポジトリを作成するときに使用すれば自動的に作成されるので、Git Flowで開発を行う際には使うと便利だろう。
Gitのブランチは細かく作っていけるため、トピックブランチからdevelopブランチへのマージや、masterブランチへのマージも頻繁に行われる。そのため、Gitではコミットやマージ、編集位置の変更機能が充実している(以下の表を参照)。
Gitコマンド | 説明 |
---|---|
reset | コミットの履歴を削除する。公開リポジトリに対して行うと、コミットが消えてしまうので、可能な限り行わない方がよい |
revert | コミット履歴としては残すが、新たな履歴を作成してソースコードの状態を以前の状態に戻す |
rebase | ブランチの基点となるコミットを別のコミットに移動する。他にもコミット前に履歴を消去してpush前に細かいcommitをクリーンアップするために使う |
clean | リポジトリから追跡対象外のファイルを削除する |
コミット関連のコマンド |
Gitコマンド | 説明 |
---|---|
merge | ブランチ間の履歴を結合する |
cherry-pick | ブランチから指定したコミットのみマージする |
マージ関係のコマンド |
これらの操作は現時点においてほとんどVS内では行えず、Git For Windows(msysgit)のようなコマンドツール、Git ExtensionsというVSやエクスプローラーにGitを統合する拡張機能、もしくは、AtlassianのSourceTreeのような外部GUIツールを使用する必要がある。
なお、VS内で操作可能なコマンドに関しては一覧でまとまっているので、参考にしてほしい。
VS OnlineのGitチームプロジェクトでは、WebもしくはVSでブランチを作ることが可能だ。ローカルでブランチを作成して、テストまで実施して、問題ないことを確認してからリモートリポジトリにプッシュしよう。
VS Onlineの[CODE]ページでブランチを作成する対象を選んで、右上にある[master]ドロップダウンをクリックし、ブランチの名前を入力して、最後に[New Branch]ボタンをクリックすればサーバーでブランチを作成できる。VSでブランチを作成するにはチームエクスプローラーを使用する。
チームエクスプローラーの[分岐]ページで[新しい分岐]をクリックすると、ブランチの名称を設定できる。このとき、「ブランチの名前はGit Flowに則る」とか「バグ修正のブランチであれば対象のバグ番号を名前に含む」など、ブランチの名前を見ただけでどんな作業が行われているかある程度分かるようにしておくと、チームメンバーで誤解が発生しないため、名前付けのルールは決めておこう。
ここでは「Feature」という名前を付けてブランチを作成する。VS Onlineで作成されているリモートブランチと、ローカルに作成されているブランチを見分ける方法は簡単だ。チームエクスプローラーの[分岐]ページで[新しい分岐]ドロップダウンを開き分岐元を示すドロップダウンしたときに、名前に「origin」と付いて表示されるものがリモートブランチとなる。例えば、名前が「origin/master」ならリモートブランチのmasterということになる。
masterブランチを最初に構築するときも、最初に別のブランチに必要なファイルを登録して、一通り終わったらmasterブランチにマージするという運用を行えばmasterブランチで作業中に他のメンバーにクローンされてしまう事態を防げるだろう。
次に、ブランチに対して行った編集をマージする方法を見る。
Copyright© Digital Advantage Corp. All Rights Reserved.