徳島ゲーム開発ごっこ 技術ブログ

ゲームを作るために役に立ったり立たなかったりする技術を学んでいきます!

【Git】GitHubDesktopをインストールして使ってみよう

GitHubDesktopのインストール方法と使い方を簡単にまとめてみた話。


今回小規模のチーム開発をすることになったんだ。
そして、プロジェクトの管理は GitHub を使いたい。
更に、 GitHub をPC上の管理するために、 GitHubDesktop をチームで統一して使っていきたい。

しかしこの、Gitバージョン管理ツールってちゃんと説明すると結構大変だ!
僕も正しく美しく説明できる自信が無ぇ。
そう、とりあえず簡単に、最小限のことが出来るぐらいの知識から始めればいいんだよ。

というわけで今回は、
GitHubDesktop を使って何となくプロジェクトをバージョン管理をしてみよう!
といったお話。

今回の記事の合言葉は、
「こまけぇこたぁいいんだよ!!」

ではダウンロードだ

では早速、 GitHubの公式HPから GitHubDesktop をダウンロードしようか。
最近、ショッピングサイトで偽サイトによる被害が多発しているって、ニュースでやっていた気がする。
もしかしたら、 GitHub にも偽サイトあるのかもしれない!
URLはきちんと確認しておこうぜ!
desktop.github.com
f:id:urahimono:20201208105129p:plain

さあセットアップだ

インストールに関しては、Macの場合はダウンロードした GitHubDesktop を Application フォルダに入れるだけでいいから簡単だ。
GitHubDesktop を立ち上げてみようぜ!
f:id:urahimono:20201208105202p:plain

立ち上げら、GitHub のアカウントによるサインインを要求してくるぞ!
GitHubアカウントは もう既にみんな取得しているに違いないから そのアカウントでサインインしよう!
f:id:urahimono:20201208105226p:plain
f:id:urahimono:20201208105234p:plain

これでセットアップは完了だ!
f:id:urahimono:20201208105254p:plain

GitHubからプロジェクトデータをダウンロードしよう

では、アカウントから取得できるプロジェクトデータをダウンロードしてみよう。
"Clone a Repository from the internet..." のボタンを押すと、自分のアカウントに紐づいたプロジェクトの一覧が出るので、そこから任意のものを選ぼう!
"Local Path"で指定した場所にデータがダウンロードされるぞ!
f:id:urahimono:20201208105325p:plain

今回はテスト用のプロジェクトをダウンロードしてみた。
これでこのプロジェクトがPC上で自由に扱えるようになったぞ!
f:id:urahimono:20201208105335p:plain

簡単で最小限の使い方

よっしゃ、あとは GitHubDesktop の簡単で最小限のことがらのみを説明するよー。

プロジェクト最新のバージョンを取得する

まずは "Fetch" ボタンを押してみよう!
GitHub 上のプロジェクトに更新があるかを確認してくれるぞ。
f:id:urahimono:20201208105422p:plain

その後 "Pull" ボタンに変わったら、メンバーの誰かがプロジェクトを更新してくれた証拠だ。
"Pull" ボタンを押せば、最新のデータに更新してくれるぞ!
ちなみにボタン右にある数字は更新された数ぐらいに覚えておけばいいと思う。
f:id:urahimono:20201208105435p:plain

自分がプロジェクトを更新する

プロジェクト内のデータを変更・追加・削除などをしたあとに、 GitHubDesktop を見ると、"Changes" の項目に変化したファイルの一覧が表示されるよ。

ファイルの隣にあるアイコンが変化した状態を表している。

  • 緑色:ファイルを新しく追加した。
  • 黄色:ファイルの中身を更新した。
  • 赤色:ファイルを削除した。

f:id:urahimono:20201208105535p:plain

では、これらのファイルの変更を確定してみよう。
"Changes" の下部にこのファイルの変更に関して説明を記述する部分があるので、ここに要約を記述しよう。
そのあと、 "Commit" ボタンを押せばOKだ!
f:id:urahimono:20201208105553p:plain

この段階では、まだ GitHub にはアップロードされていない!
まだ他のチームメンバーとはこの変更は共有されてはいないんだ!
"Fetch" ボタンが "Push" に変わっていると思う。
この "Push" ボタンを押すことで、 GitHub にアップロードされチームメンバーと共有されるぞ!
f:id:urahimono:20201208105614p:plain

ここで "Commit" と "Push" の違いって何なの? って話になると思うけど、
悪いが説明が面倒くさい。

ただ言えることは、
作業A作業B作業Cをやった、"Commit" そして "Push"。
とやるよりも、
作業Aをやった、"Commit"
作業Bをやった、"Commit"
作業Cをやった、"Commit"
最後に"Push"。
の方が好ましい、とだけ伝えておくのさ。

作業中のファイルが更新されてしまった場合

一番面倒なのがこの状況に陥った場合だ。

今回の場合では、 A.txt を変更している最中だけど、 "Fetch" ボタンを見ると "Pull" ボタンに変わっている。
どうやら誰かがプロジェクトを更新したようだ。
"Pull" して最新版にしよう。
f:id:urahimono:20201208105714p:plain

最新版にしたら怒られた!
f:id:urahimono:20201208105726p:plain

どうやら更新されたファイルの中に、いまが自分が更新してる A.txt が入っていたようだね。
更新がバッティングしてしまったのだ!
とりあえず "Stash" ボタンを押して、作業中のファイルを待避させよう。

待避させたファイルには二つの選択肢が与えられる。

  • Discord: 自分の更新を諦めて破棄する。
  • Restore: 最新版の更新と自分の更新を混ぜていい感じにする。

f:id:urahimono:20201208105757p:plain

今回はただのテキストデータなので "Restore" を試してみよう。
するとこうなる。
f:id:urahimono:20201208105809p:plain

良い感じになっている。
"Restore" すげー、ってなると思う。
ただ、そうそう上手くはいかないはずだ。

ソースコードなどテキストベースのものは、自動的に Restore したり、自力でマージしたりすることは可能だと思う。
ていうか日常茶飯事でやっていることだろうさ。

更に言うならば、そういうことを日常的にやっている人は、
こんな雑な説明しかしていない記事なんて読まんだろうから 割愛しよう。

ゲーム開発、特に Unity を使ったプロジェクトの場合は、
シーンのデータや Prefab のデータがバッティングする場合が多いことだろう。
これらのファイルもテキストベースなため、 Restore することは決して不可能ではない。
が、データの中に詳しくない人がやるとデータをぶっ壊すことが多いと思うな。
なので、涙を飲んで Discord してしまうのが無難かな……。
(※個人の感想です)

さて、今回 GitHubDesktop の使い方を凄く雑に説明しました。
最終的に記事を書いていて思ったことは、データがバッティングしてしまった場合の対処が一番大変だね。
そのあたりに関しては、別の機会に別の記事で書いてみるかもしれません。