Gitを理解した手順
ゲーム動画作成での例え
セーブの度に・・・
A.上書きセーブでゲームを進めて動画撮影するのがバージョン管理無しの開発
B.セーブを分けていくのがバージョン管理有りの開発
一人でGitを使って開発していく場合、
セーブの下に新しいセーブを作るのにコミットを使います。
複数人のグループで作る場合。
フォートナイトやCivilizationのようなゲームで四人で同時進行した場合、それぞれの人が手元でセーブと録画保存(コミット[commit])をします。
動画プロジェクト(※1)はグーグルドライブでの管理とします。
※1 動画プロジェクト:動画編集ソフトでカット編集や映像に施した効果等の情報と動画をもったもの
みんなでメインの動画プロジェクトを更新すると時系列バラバラとかまとまりがないなど混乱するので各自が自由に更新できるスペースをグーグルドライブにつくるのがブランチ[blunch]
手元に作業用スペースを作るのがクローン[clone]
手元から動画プロジェクトの中からGoogleドライブにアップロードする内容を選別するのがアド[add]
Googleドライブにアップロードするのがプッシュ[push]
各自がGoogleドライブにおいた内容の動画プロジェクトをメインの動画プロジェクトに追加よろしくって、投稿者(master)の元に連絡するのがプルリクエスト
Googleドライブの作業するスペースの切り替えとそれに対応する手元の作業用スペースの切り替えをするのがチェックアウト[checkout]
もう少し具体的に例えると、
AさんのフォルダをみてたけどBさんのフォルダを見てみよう
Googleドライブの作業スペース(Bさん:11月2日に作成、11月3日更新1)をみつつ、手元の作業スペースは(Bさん:11月2日作成)になります。Bさんの更新状況は持っていません。
なので、Googleドライブから動画プロジェクトを持ってきて手元の動画プロジェクトとくっつけるのがプル[pull]
これで手元の作業スペースは(Bさん:11月2日作成、11月3日更新1)
となります。
手元にある投稿者の動画の後ろに自分の編集した動画をつけるのがリベース[rebase]
リベースはそれぞれが沢山の動画を送ると投稿者の受けとる更新内容の履歴が増えすぎて困るので、いくつかの動画をまとめることができる。
Googleドライブの動画プロジェクト(マスタ): Cさん更新1、Cさん更新23
Aさんの手元のマスタの動画プロジェクト:Cさん更新1、Cさん更新2
Aさんの動画プロジェクト:Cさん更新1、Aさん更新1、Aさん更新2
上記がこんな感じになる。
AさんがAさん作業スペースだけでやると[rebase]⇒Cさん更新1、Aさん更新12
Aさんがマスタにリベース[rebase]⇒Cさん更新1、Cさん更新2、Aさん更新12
さらに
この状態でマスタをチェックアウトしてプルすると
Aさんの手元のマスタの動画プロジェクト:Cさん更新1、Cさん更新23
Aさんの動画プロジェクト:Cさん更新1、Cさん更新2、Aさん更新12
そして
Aさんがマスタにリベース[rebase]⇒Cさん更新1、Cさん更新23、Aさん更新12