Raspberlyのブログ

Raspberlyのブログ

Unityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。そろそろブログタイトル決めたい

勉強会レポ : Unity ユーザのための Git ハンズオン #1

勉強会のレポート(メモ)です。
参加したのはこちら、「Unity ユーザのための Git ハンズオン #1」
会場はユニティ・テクノロジーズ・ジャパンさんです。

meetup.unity3d.jpハッシュタグ : #Unity_Git

  

 

動画がこちらから閲覧できます。
手順や解説などはこちらでどうぞ。

www.youtube.com

 

 

有志による不定期に開催される勉強会です。
会場提供、機材、懇親会Unityさんです。
今回は強力なサポーターもいます。

f:id:Raspberly:20190405010402j:plain

 

資料はこちら。

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実行ができます。
プルをしてくださいというリクエストを出すこともできます。

 

ここで時間切れ

フォークの説明はちょっと時間がなくてできませんでした。
次回もあるのでそちらを見てください。

 

 

 

 

 

 

 

懇親会

パン?の上に具材が乗った食べ物をいただきました。
とてもおいしかったです。

f:id:Raspberly:20190405010523j:plain

 

第2回目もあるそうですが内容は同じものになるようです。
今回参加できなかった方も是非どうぞ!

 

 

 

私は普段GitHubはあまり使わず、Bitbucketがメインですがリポジトリ生成時にgitignoreもついでに作れるので今回のようなやり方は初めてでした。

Unity用のgitignoreはこちらっぽい。
gitignore/Unity.gitignore at master · github/gitignore · GitHub
UnityはAssetsとProjectSettingsがあればいいというのを昔どこかで聞きましたね。



 

タイムライン

 

 

 

 

 

 

間違っている箇所、消してほしいツイートがありましたらコメントにお願いします。