[GitHub解説 第3回]ブランチで遊ぼう
こんにちは、コーディング課3回生のguuです。
今回は、実際にGitHubでブランチを作成したり、プッシュ、プルをしていきます。
この記事では、VisualStudioとSourceTreeを使って、説明していきます。(詳しくは、第2回参照)
分からない単語があれば第1回の記事を参照してください。
エラーの詳しい解決方法は、第4回の記事を参照してください。
目次
クローンを作ろう
GitHubのプロジェクトを自身のパソコンで編集できるようにしよう。
VisualStudio
まず、GitHubで「Open with Visual Studio」をクリックしましょう。
すると、VisualStudioで以下のような画面になるので、保存先のパスを確認した後、「クローン」ボタンをクリックしましょう。
このとき、保存先のパスを忘れないように気をつけましょう。
最後に、先ほど保存したクローンをUnityHubから開けるようにしましょう。
「Add」ボタンの「Add project from disk」から、クローンのフォルダを選択することで追加できます。
SourceTree
まず、GitHubでHTTPSのURLをコピーしましょう。
次に、SourceTreeを開き、「新規」ボタンの「URLからクローン」からGItHubプロジェクトのクローンを作成します。
ソースURLに、コピーしたURLを貼り付けクローンボタンを押しましょう。
このとき、保存先のパスを忘れないように気をつけましょう。
最後に、先ほど保存したクローンをUnityHubから開けるようにしましょう。
「Add」ボタンの「Add project from disk」から、クローンのフォルダを選択することで追加できます。
ブランチを作ってみよう
自分だけの作業スペースであるブランチを作っていこう。
VisualStudio
まず、VisualStudioを開き、クローンしたプロジェクトを開きましょう。
Unityから適当なスクリプトを開くやり方でも大丈夫です。
次に、右下の「main」(「master」)という部分をクリックし、「新しいブランチ」をクリックします。
すると、以下のようなウィンドウが出るので、「作成元」をリモートの「main」にしましょう。
そして、ブランチ名を入力し、作成をクリックしましょう。
右下のブランチ名が作成したブランチ名になっていれば完了です。
変わっていない場合は、もう一度右下のブランチ名を押して、ローカルの中の自身が作成したブランチ名をクリックしましょう。
SourceTree
まず、SourceTreeでリポジトリを開きましょう。
そして、左のバーの「リモート」という項目の「origin」->「master」をクリックしましょう。
すると、以下のような画面になるので、ブランチ名を入力し、チェックアウトボタンを押しましょう。
この時、「次のリモートブランチをチェックアウトの項目」が「origin/master」になっているか確認しましょう。
左のバーの「ブランチ」という項目に、作成したブランチ名があれば、完了です。
ブランチのTips
マスターブランチ
マスターブランチは基本的に触らないようにしましょう。
全てのブランチは、マスターをもとに作業しています。
なので、間違えてマスターで直接変更して、バグが発生した場合、全ブランチが影響を受ける可能性が高いです。
完成品のテストをしたい場合も、一度自分のブランチにコピーしてから行いましょう。
ちなみに、SourceTreeでリポジトリを作るとマスターブランチは、「main」という名前になるようです。
リモートブランチをもとにローカルブランチを作成する
ブランチを作成する際は、リモートブランチをもとに作成しましょう。
ローカルブランチを基にしてブランチを作成すると、デフォルトではリモートリポジトリと接続されていないため、リモートリポジトリに変更を反映させる設定が自動で行われません。
結果として、自身の変更がチーム全体のリポジトリに反映されなくなります。
階層構造
ブランチ名は「機能名/作業者」の形式で命名すると、まるで機能名がフォルダで、その中に作業者のブランチがあるような階層構造に見えます。
このようにすることで、今どの機能が作業されているのか、その機能は誰が担当しているのかブランチ名だけで推測できるので、作業の整理やチーム内の連携がスムーズになります。
なので、「機能名/作業者」のような名前をつけることをお勧めします。
ブランチの変更をリモートリポジトリにアップロードしよう
コミットしよう
コミットすることで、現在の変更をローカルブランチに反映できます。
まず、コミットするためにUnityで適当にスクリプトを作りましょう。
VisualStudio
適当に作ったスクリプトをVisualStudioで開きましょう。
上のツールバーから「Git」をクリックし、「コミットまたはスタッシュ」しましょう。
すると、以下のようなウィンドウが右側に出てきます。
次に、コミットしたいファイルやフォルダを選択し右クリックしましょう。
すると、ステージするという項目があるのでそれをクリックしましょう。
ファイルをステージするときは、ステージしたいファイルと同じ名前のmetaファイルもステージの項目に入っているか確かめましょう。
そして、コミットメッセージを書き、「ステージング済みをコミット」をクリックしましょう。
全ファイルをコミットしたい場合は、ステージの操作は飛ばして、コミットメッセージを書いて、「すべてコミット」をクリックしましょう。
SourceTree
まず、SourceTreeでリポジトリを開き、上のバーの「コミット」をクリックします。
すると、以下の画像のような画面になるので、コミットするものにチェックマークをつけます。
この画像では、Testのスクリプトだけ変更したので、このスクリプトだけチェックマークをつけます。
次に、コミットメッセージを書きます。
画像の下の入力欄がコミットメッセージで、どのような変更をしたのか書きましょう。
そして、最後にコミットボタンを押して完了です。
コミットTips
コミットメッセージ
コミットメッセージは、しっかり何を実装したのか書きましょう。
よく後からバグが見つかった場合、そのバグの原因となる変更を過去のコミットから探します。
その際、コミットメッセージがきちんと書かれていると、バグの原因箇所を素早く特定し、戻すことが容易になります。
なので、わかりやすいコミットメッセージを心がけましょう。
コミットするファイル(フォルダ)を選ぶ
コミットする前に、そのファイルやフォルダが本当に必要かを考えましょう。
例えば、一時的なテスト用スクリプトなどはコミットが必要でしょうか?
それは、おそらくあなたしか使わず、今後も使うか不明です。
不要なファイルをコミットすると、プロジェクトが無駄に大きくなり、ビルドにかかる時間が長くなったり、管理が難しくなります。
必要なファイルだけをコミットするようにして、プロジェクトを効率的に管理しましょう。
変更をもとに戻す
変更されたファイルの中には、意図せず変更してしまったファイルが混じっていることもあります。
触った覚えのないファイルを何も考えずにコミットしてしまうとコンフリクトの要因になります。
知らないファイルの変更は、元に戻しておきましょう。
やり方
VisualStudio
右側のコミットのウィンドウの変更一覧から、取り消したいファイルの矢印を押すと変更を元に戻せます。
SourceTree
まず、コミットの画面を開きます。
そして、変更をもとに戻したいファイルの3点リーダーをクリックし、「ファイルを破棄」をクリックします。
これで、変更がもとに戻ります。
プッシュしよう
プッシュすることで、変更がリモートリポジトリに反映されます。
VisualStudio
まず、VisualStudioの右側にあるコミットウィンドウを見ましょう。(ない場合は、コミットの説明の操作を参照してください)
ウィンドウの右上に上向きの矢印があるので、そのボタンをクリックしましょう。
エラーが発生しなければ、プッシュ完了です。
SourceTree
まず、上のツールバーから「プッシュ」をクリックします。
そして、自分のローカルブランチと同じ名前のリモートブランチにチェックをつけて、「OK」ボタンをクリックします。
何もエラーが出なければプッシュ完了です。
マスターに変更を反映しよう
プルリクエストを出そう
プルリクエストを出すことで、他のブランチに自分のブランチの変更を反映させる依頼をすることができます。
やり方
まず、GitHubを開き、上のツールバーから「Pull requests」をクリックしましょう。
すると、下のような画面になるので、「New pull request」というボタンを押しましょう。
そして、以下の画像の「base」の項目をmasterに、「compare」の項目を自分のリポジトリ名にしましょう。
その後、「Create pull request」を押して、実際にプルリクエストを書いていきます。
プルリクエストに、タイトルをつけましょう。大体は、完成した機能名や追加した機能を書けばいいです。
書き終えたら、「Create pull request」を押して、プルリクエストは完了です。
VisualStudioでやるやり方
コミットした後に、以下のような説明が出るので、そこのVisualStudioで作成をクリックしましょう。
すると、以下のような画面が出てくるので、上のマージ先がマスターブランチ、ソースが自身のブランチになっているか確認しましょう。
確認出来たら、コミットメッセージを書き、「作成」ボタンをクリックしましょう。
ちなみに、左の変更欄にあるファイルをクリックするとマージ先の変更との差分を確認できます。
マージしよう
マージすることで、実際に機能が指定したブランチに反映されます。
やり方
先ほどのプルリクエストの画面で、「Marge pull request」ボタンを押し、その後、「Confirm Merge」を押すことで、マージ完了です。
マージTips
マージ係
マージをする人は、誰か一人に決めておくと良いです。
マージをチームメンバーが勝手にやってしまうと、新しい機能にバグがないか見る人が製作者だけしかいないのに、完成品に組み込んでしまうことになります。
マージの責任者を決めて、その人が実際にマージを行いましょう。
また、プルリクエストには、レビューの機能があるので、何か問題がありそうなら他のチームメンバーもレビューを書いてあげると良いです。
プルしよう
プルすることで、ローカルリポジトリの内容を最新の状態にできます。
VisualStudio
まず、VisualStudioの右側にあるコミットウィンドウを見ましょう。(ない場合は、コミットの説明の操作を参照してください)
ウィンドウの右上に下向きの矢印があるので、そのボタンをクリックしましょう。
エラーが発生しなければ、プル完了です。
SourceTree
まず、上のツールバーから「プル」をクリックします。
すると、以下のような画面になるので、プルするリモートのブランチが現在チェックインしているローカルブランチと一致することを確認して、「OK」をクリックします。
エラーが出なければ、プルは完了です。
マスターを自分のブランチにマージしよう
完成品の状態を自分のブランチにも反映しましょう。
VisualStudio
まず、マスターにチェックインして、プルしましょう。
チェックインは、右下の現在のブランチ名をクリックし、その後、表示されるブランチ一覧から、チェックインしたいブランチ名をクリックすることでできます。
マスターでプルが終わったら、マスターをマージしたいブランチにチェックインします。
次に、右下の「↑↓ 0/0」のアイコンをクリックし、「すべてのコミットを表示する」でリポジトリのウィンドウを表示しましょう。
そして、右側のブランチの一覧からマスターをマージしたいブランチを右クリックし、「mainをtest/guu(自分のブランチ名)にマージする」をクリックしましょう。
すると、以下のようなウィンドウが出現するので、マージするブランチがマスター担っていることを確認し、マージをクリックしましょう。
SourceTree
まず、マスターにチェックインし、プルします。
次に、自分のブランチにチェックインし、マスターブランチを右クリックします。
すると、以下のような画面になるので、「masterをtest/guu(自分のブランチ名)にマージ」をクリックしましょう。
エラーが出なければ、マージ完了です。
おわりに
今回は、自分のブランチを作って、いろんな操作をしていきました。
次回は、GitHubのエラーの解決方法について説明していきます。