勉強会のレポート(メモ)です。
参加したのはこちら、「Unity ユーザのための Git ハンズオン #1」
会場はユニティ・テクノロジーズ・ジャパンさんです。
meetup.unity3d.jpハッシュタグ : #Unity_Git
動画がこちらから閲覧できます。
手順や解説などはこちらでどうぞ。
有志による不定期に開催される勉強会です。
会場提供、機材、懇親会Unityさんです。
今回は強力なサポーターもいます。
資料はこちら。
esa-pages.io今回はGUIを使用します。
講師紹介
もんりぃ先生です。
ごっこランドをぜひダウンロードしてみてください。
サポーターとして「えむにわ」さん、「とりすーぷ」さん、UTJの方が支援してくれます。
環境構築
フォークというアプリを使って説明をしていきたいと思います。
sourcetreeのようなもの。アカウントの登録がいらないものです。
全部英語です。英語だとコマンドラインと同じ単語が使われるのでわかりやすいかと。
Fork - a fast and friendly git client for Mac and Windows
コマンドラインについて
レジュメの方を使ってみてください。
本格的にがっつりやりたいときはCLIがないとしんどくなってきます。
そのうち使えるようになっておくといいでしょう。
Gitとは
分散型のバージョン管理システムです。
クライアントがいろいろありますが、中身はgitを実行しているだけです。
サーバー側にリポジトリと呼ばれる場所を作り、ソースなどをまとめておきます。
使うときはこれをクローン(リポジトリをまるっとコピー)します。
これがいろんなマシンに分散されて使われます。
サーバー側でリモートリポジトリを管理するサービスもあります(githubやbitbucketなど)
ローカル
(クローンしたては)サーバーとおなじもの。
これをチェックアウトしてできるのが作業コピー。
作業コピーを変更したもの登録する時はステージングエリアに登録します。
するとステージングエリアにたくさん変更がたまっていきます。
これをローカルに反映させることをコミットといいます。
リビジョン
修正内容のこと、1行単位。
これを積み重ねていきます。
おさらい
リモート
サーバー上にあるリポジトリ
作業コピー
呼び方がいろいろあります
英語だとワーキングツリーがオフィシャルだと思います
ステージングエリア
変更をいったんためておくところ。
修正内容など。リポジトリを操作する時はここを操作します。
リビジョン
変更履歴の単位。
1つ分の変更履歴であればいいので、1つのファイルとはかぎらない。
この時40文字のハッシュが作られます。
基本
gitignoreの作成
gitignoreはgitで管理しないものの一覧です。
これはGitクライアント上で無視されます。
Unityで言うとLibraryフォルダなど無視したいものをここに記述します。
初期化
コマンドでいうとgit init
これでステージングエリアとローカルリポジトリの箱だけ作られました。
Add
ステージングエリアに管理対象として登録すること。
コミット
Addしたものをリポジトリに反映させること。
ブランチを作りましょう
ブランチとは履歴を積み上げていくときに別の歴史を作ること。
後からの機能修正ですぐに切り替えられるようになります。
こうすることで複数人で開発する時に衝突しなくなる。
マージ
歴史を切り替えたが、本流に合流させたい場合。
それぞれのブランチを混ぜる行為をマージといいます。
この時衝突することをコンフリクトといいます。
こういう場合、どっちを採用するかを選択します。
どっちも採用したい時は地獄です。
たとえマージに失敗しても歴史は残っているので復元は簡単にできます。
応用編
GitHubを使おう
GitHubとは何か
リモートリポジトリを管理してくれるサービス。
去年マイクロソフトに買収されました。
最近、プライベートリポジトリの無制限使用が無料になりました。
認証の設定
GitHubと通信するために鍵を登録する必要があります。
しかしこれだけではだめ、ローカルに溜めた変更をリモートに送る必要があります。
これをプッシュといいます。
既にGitHubで管理済みのプロジェクトの場合はクローンして使いましょう。
会社やチームに参加する場合はこっちが基本。
プルリクエスト
Gitの機能ではない。GitHubが容易しているチーム開発に便利な機能。
コードレビューやCI実行ができます。
プルをしてくださいというリクエストを出すこともできます。
ここで時間切れ
フォークの説明はちょっと時間がなくてできませんでした。
次回もあるのでそちらを見てください。
懇親会
パン?の上に具材が乗った食べ物をいただきました。
とてもおいしかったです。
第2回目もあるそうですが内容は同じものになるようです。
今回参加できなかった方も是非どうぞ!
私は普段GitHubはあまり使わず、Bitbucketがメインですがリポジトリ生成時にgitignoreもついでに作れるので今回のようなやり方は初めてでした。
Unity用のgitignoreはこちらっぽい。
gitignore/Unity.gitignore at master · github/gitignore · GitHub
UnityはAssetsとProjectSettingsがあればいいというのを昔どこかで聞きましたね。
タイムライン
#Unity_Git なう。
— Crispy! (@crispy2d) April 4, 2019
ユニティ・テクノロジーズ・ジャパンのオフィス、オシャレすぎ。 pic.twitter.com/Sub8DRxsLp
本日はForkを使う。https://t.co/9nwxb0vvNC
— Crispy! (@crispy2d) April 4, 2019
会社ではSourcetreeでした(;'∀')#Unity_Git
「今回最大の難所は .gitignoreファイル(.始まりのファイル)を作ること」。確かに、cygwinの入ってないwin機でぱっとやれと言われると、わかんないかな… #unity_git
— iiou16@VR×AI (@iiou16_tech) April 4, 2019
win勢は拡張子表示してね #unity_git pic.twitter.com/5AeOmhItPl
— しんーーご.vrm (@shi_k_7) April 4, 2019
共同製作メンバーから、むっちゃGit薦められてるので頑張る。#Unity_Git
— しぐさ (@s_shigusa) April 4, 2019
軽食としてご提供頂いたこのオシャンティな食べ物、ピザ説やたこ焼き説もありましたがコロッケという事が判明しました。凄い美味。#Unity_Git pic.twitter.com/l3jdnShx0T
— Crispy! (@crispy2d) April 4, 2019
「Git完全に理解した」って感じになった #Unity_Git
— 志谷のぞみ Nozomi Shiya (@rice_galaxy) April 4, 2019
間違っている箇所、消してほしいツイートがありましたらコメントにお願いします。