1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

既存のUnityプロジェクトにgithubを導入する方法

【想定読者】
・gitの導入が済んでいる方
・githubのアカウントを持っている方
・lfsの導入が済んでいる方
・Unityプロジェクトを持っている方

(1) githubでリモートリポジトリを作成する。
キャプチャ.PNG

Add .gitignoreにチェックを入れて、Unityを選択しておきましょう。
Public/Privateの設定は、他の人に公開しないならばPrivateに設定しましょう。

(2) 出来上がったリポジトリのURLを確認する。(3で使います)
github.PNG

リポジトリを開いて一番最初に出てくる画面の、
緑色のCodeというボタンを押すと表示されるURLです。
(2021/6/13現在)

(3) 自分のUnityプロジェクトにgitを導入する。

git init
git remote add origin [2のurl]

コマンドプロンプト(Macの場合はターミナル)で自分のUnityプロジェクトに移動し、上記のコマンドを実行する。
私の実行環境では、下記のようなフォルダです。
unityproject.PNG

実行しても何も表示されないので、不安な方は「git remote -v」というコマンドを実行して、2のURLが表示されれば成功です。

(4) リモートの情報を取り込む

git pull origin main

(5) Unityプロジェクトの情報をリモートリポジトリに反映する

git add .
git commit -m "Add project"
git push origin main

[git add .]は、gitで管理するファイルを選択するコマンドです。[.]は全てという意味ですが、個別に指定したい場合はファイル名/フォルダ名を入力します。
[git commit -m "Add project"] 選択したファイルを実際にコミットするコマンドです。["Add project"]の部分は自由に決められるメッセージですが、あとで識別しやすいような文章を入れるのがおすすめです。
[git push origin main]実際にリモートリポジトリに反映するコマンドです。gitのバージョンによっては、[main]の部分を[master:main]とする必要があるかもしれません。
これは自分のmasterローカルブランチからmainリモートブランチへ送信するという意味です。
ローカルもリモートもどちらもmainの場合は、main:mainと書かずにmainと省略できます。

(6) lfsを導入する

git lfs install
git lfs track "*.png"

[git lfs track]コマンドでlfsで管理するファイルを選択します。
[git lfs track "*.png"]コマンドでpngファイルを全てlfsで管理するように設定できます。
一度上記のコマンドを実行した後はカレントディレクトリに[.gitattributes]ファイルが出来上がるので、それを直接編集するのがおすすめです。

.gitattributesの例
*.cs diff=csharp text
*.cginc text
*.shader text

*.mat merge=unityyamlmerge eol=lf
*.anim merge=unityyamlmerge eol=lf
*.unity merge=unityyamlmerge eol=lf
*.prefab merge=unityyamlmerge eol=lf
*.physicsMaterial2D merge=unityyamlmerge eol=lf
*.physicsMaterial merge=unityyamlmerge eol=lf
*.asset merge=unityyamlmerge eol=lf
*.meta merge=unityyamlmerge eol=lf
*.controller merge=unityyamlmerge eol=lf


## git-lfs ##

#Image
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
*.ai filter=lfs diff=lfs merge=lfs -text


#Audio
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text


#Video
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.mov filter=lfs diff=lfs merge=lfs -text


#3D Object
*.FBX filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text

#ETC
*.a filter=lfs diff=lfs merge=lfs -text
*.exr filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.dll filter=lfs diff=lfs merge=lfs -text
*.unitypackage filter=lfs diff=lfs merge=lfs -text
*.aif filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.rns filter=lfs diff=lfs merge=lfs -text
*.reason filter=lfs diff=lfs merge=lfs -text
*.lxo filter=lfs diff=lfs merge=lfs -text

#Asset
*.asset filter=lfs diff=lfs merge=lfs -text

(7) lfsの導入をリモートリポジトリに反映する。

git add .
git commit -m "Add lfs"
git push origin main

備考

今回は全てコマンドで実行しましたが、SourceTreeなどのソフトを利用してもいいと思います。
git, github, lfsの導入方法は別の記事に残すかもしれないです。
Jenkinsを使ってgithubで管理しているUnityプロジェクトを一括でビルドする方法も記事にしたいです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
1
Help us understand the problem. What are the problem?