【Git】【Unity】关于VRChatter的Git入门指南

这篇文章是VRChat Advent Calendar 2018的第17天的文章。

昨天的文章是由@jscmla1118提供的,涉及到连接VRChat和外部世界的接口。

首先

我之前作为一名工程师使用Git,但当我开始使用Git来管理VRChat的角色和世界时,发现这非常方便。因此,我想写一些关于如何管理VRChat Unity项目以及注意事项的内容。

起初,Git是什么?

这个叫做分布式版本控制系统的东西,简单来说,就是可以随时记录和管理正在创建的项目的中间过程的系统。

正在制作的物品的状态会保存在名为“仓库”的数据库中。

另外,当我们将文件提交到存储库时,称之为“提交(Commit)”。

スクリーンショット 2018-12-13 17.22.13.png

在Git上进行项目管理的好处

由于能够随时记录制作过程,因此可以轻松备份项目。

并且,通过使用远程存储库,我们可以轻松地将备份上传并管理在互联网服务器上。

此外,由于过程被分别保存,因此可以提取以前某个时间点创建的内容。

除此之外,您还可以使用分支功能,在保留之前所创建的内容的同时制作另一个版本的产品。

在使用Git管理VRChat项目时需要注意的事项。

我认为在VRChat项目中,很多人包括购买的3D模型在内。

只要在本地存储库中管理这种项目是没有问题的,但请在上传到远程存储库时设置为非公开项目。

如果把这个项目作为公共项目进行管理,其他人就有可能复制该项目,这可能违反许多销售头像的使用条款中的禁止再分发规定。

另外,即使不那样做,也有可能会被擅自复制正在创建的作品,因此我认为最好将VRChat项目保持为私人管理。

然而,作为著名的远程存储库托管服务,GitHub 对于私有存储库是收费的(对于学生来说,在前两年可以免费使用,详细信息请参阅此处)。

(2019年10月1日追記)目前,GitHub的私有仓库也可以免费使用。

Bitbucket是一个远程仓库托管网站,可以免费使用私有仓库,因此个人推荐使用这个网站。(以下教程也使用了这个网站)

作为另一个要注意的问题,VRChat项目中包含许多容量较大的模型、纹理等文件。

容量较大的项目最终可能需要几十分钟才能进行操作,或者会受到远程存储库的容量限制。

我认为,作为参考,项目的Assets文件夹容量在500~600MB左右将会达到极限。

执行巨大的项目时,最好使用GitLFS服务进行管理,或者完全在本地进行管理。

让我们亲自实践一下吧!

我希望实际使用Git来管理项目。

安装SourceTree

有两种使用方法,一种是通过命令行(类似于Windows的命令提示符)使用Git,另一种是通过图形界面的软件使用Git。

我希望使用直觉操作的后者软件,尽管前者可以快速操作,但可能不熟悉命令行输入,需要记住命令并输入,一开始可能有些困难。

本次使用的”SourceTree”是其中一款后者的Git客户端软件。

请参考此网站了解详细的下载和安装方法。

请您查看这个网站以了解详细的下载和安装方法。

请您参考此网站以获取更详细的下载和安装方式。

请您参照此网站以获得详尽的下载和安装说明。

请参照此网站了解如何进行详细的下载和安装。

Unity项目的准备工作

在Git中配置不進行管理的文件

Unity项目将从资产中生成的Unity内部格式的数据存储在Library文件夹中,但是这个Library文件夹的容量非常巨大。

还有,最好不要使用Git来管理此Library文件夹,因为在打开Unity项目时,该文件夹会自动生成。

由于还有一些不需要在Git中管理的文件,所以需要创建一个名为.gitignore的文件来汇总这些不需要在Git中管理的文件的信息。

请将以下设置复制并粘贴到一个适当的文本编辑器(如记事本)中,并在Unity项目文件夹的根目录下创建一个名为.gitignore的文件,具体设置如下:
由于Github的gitignore模板Unity版如下所示,您可以首先尝试将以下设置复制并粘贴到适当的文本编辑器(例如记事本)中,然后在Unity项目文件夹的根目录下创建名为.gitignore的文件。

根据反馈,我已经修改了Github的gitignore模板,以下是修正后的内容,修复了部分材料设置的问题。

/[Ll]ibrary/*
!/[Ll]ibrary/metadata
!/[Ll]ibrary/assetDatabase3
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/

# MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data
/[Mm]emoryCaptures/

# Asset meta data should only be ignored when the corresponding asset is also ignored
!/[Aa]ssets/**/*.meta

# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*

# Autogenerated Jetbrains Rider plugin
/[Aa]ssets/Plugins/Editor/JetBrains*

# Visual Studio cache directory
.vs/

# Gradle cache directory
.gradle/

# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db

# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta

# Unity3D Generated File On Crash Reports
sysinfo.txt

# Builds
*.apk
*.aab
*.unitypackage

# Crashlytics generated file
Assets/StreamingAssets/crashlytics-build.properties

# Packed Addressables
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*

# Temporary auto-generated Android Assets
/[Aa]ssets/[Ss]treamingAssets/aa.meta
/[Aa]ssets/[Ss]treamingAssets/aa/*

Unity的配置

接下来,我们将更改Unity项目的设置。

打开Unity并加载想要管理的项目,然后从菜单栏的”编辑”中选择”项目设置” -> “编辑器”来进行设置。

然后在Inspector中会出现Editor Settings,接着将其中的Version Control和Asset Serialization选项按以下方式进行设置。

unity_editor_settings.png

使用Git来管理项目的准备工作已经完成。

创建存储库

请尝试启动SourceTree。

2018-12-15 (2).png

我认为刚开始会显示这样的画面,我们首先点击上方的“创建”按钮。

2018-12-15 (4).png

然后会出现创建仓库的界面,您只需通过参照按钮指定想要管理的项目文件夹,然后点击创建按钮。

2018-12-15 (5).png

可能会出现这样的画面,请点击“是”。

ripository.png

然后,会出现这样的画面。这样,仓库的创建就完成了。

将项目置于Git管理下

当你点击工作树文件旁边的 “全部添加到索引” 按钮,就会准备好将文件纳入Git管理。

2018-12-15 (8).png

在将文件置于Git管理之前(提交之前),需要写一个提交信息。

这个提交信息是为了便于自己在以后回顾时了解添加了哪些更改而编写的。

在您的姓名下方的空格中添加提交消息并按下提交按钮。

commit.png

然后,在左侧的分支选项卡中会添加一个名为master的选项。

master.png

现在,该项目已经开始使用Git进行管理了。

尝试将代码上传到Bitbucket。

那么,让我们将这个项目上传到Bitbucket的远程仓库试试看吧。

请在浏览器中打开 https://bitbucket.org/product。

bitbucket.png

点击右上方的登录,会要求您使用在 Source tree 安装时注册的 Atlassian 帐户进行登录。请使用 Atlassian 帐户登录。

然后,屏幕会变成下面这样。

remote_repo.png

点击左侧的加号按钮,在CREATE菜单中选择仓库。

make_repo.png

输入存储库名称,并确认已选中“该存储库是私有的”复选框以及版本控制系统的单选按钮中选择了Git,然后按下创建存储库按钮。

remote_repo2.png

然后,屏幕会切换为上面的界面,然后复制被红框圈起来的部分。

回到SourceTree,点击右上角的终端按钮。

terminal.png

在这个类似上述的命令行界面中,将之前复制的命令粘贴到这里并按下Enter键。

在SourceTree中返回,点击上方的”Push”按钮后,将会出现如下所示的界面,勾选下方目标的复选框,然后再次点击”Push”按钮。

2018-12-15 (17).png

如果您刷新了瀏覽器之前的頁面,並且能看到以下顯示出項目文件,則表示已經完成。

pushed.png

项目的更新 de

我也会解释项目的更新方法。

2018-12-17 (2).png

在Unity上进行更改后,打开Sourcetree的分支选项卡,会显示如下内容,请提交这些更改。

2018-12-17 (3).png

当您切换到文件状态选项卡的工作副本上时,显示出已更改的文件,然后按下全部添加到索引的按钮。

変更.png

现在准备好提交了,写下提交消息并提交吧。
同时,请勾选左下方的”直接将更改推送到origin/master”复选框,这样提交后的更改将会自动同步到远程代码库中。

2018-12-17 (5).png

当切换回主分支(master)后,您应该能够看到变更已经被反映出来。

変更remote.png

如果将其同步到远程存储库,您可以在项目的远程存储库页面中查看提交记录以确认变更已经被反映。

通过这个步骤,项目更新已成功同步到Git。

结束了

在前面,我們已經介紹了如何使用Git來管理項目,包括上傳到遠程儲存庫以及更新項目。但是,Git還有許多其他功能(我也還沒完全掌握)。

如果你想了解其他功能或如何应对这种情况的技巧,可以在其他的Qiita文章或各类网站上查找,有需要时可以进行研究。

另外,如果您有关于Git的问题,也可以向我提问,我会尽力在我所了解的范围内回答您。请通过Twitter账号@sansuke05_vr联系我。

希望通过本文可以让更多人开始使用Git,即使只是稍微学习一点点,也能感到欣慰。

请参见参考资料。

【Unity/Git】使用Unity进行团队开发(1)概述和初始设置篇

关于针对 Unity 的 .gitignore 文件的设置

广告
将在 10 秒后关闭
bannerAds