使用Git管理Unity项目

发布时间 2023-10-15 15:00:20作者: 月牙同学
使用Git管理Unity项目

前置准备

注册GitHub账号

前往GitHub官网注册一个自己的账号,注意要开梯子进去。这些就不多说了

下载安装Git,进行基础的配置

1.前往Git官网下载安装git,安装期间有许多选项,可以直接下一步下一步下一步...无需多虑
2.打开刚安装好的Git Bash,会出现命令行,键入以下命令

$ git config --global user.name “GitHub上的用户名”
$ git config --global user.email “邮箱”

如图:

3.完成上一步后,生成SSH key密钥,之后会使用这个密钥到github上进行配置
先使用$ cd ~/.ssh来检查是否之前已经有密钥了,第一次使用是没有的,如果什么都没显示,就代表已经有密钥了,如果不知道可以前往用户文件夹的.ssh目录下,打开id_rsa.pub查看

如果没有,输入命令生成

$ ssh-keygen -t rsa -C “你的邮箱”

输入后会出现连续的确认以及输入密码,可以不用输入密码,这里一路回车即可,生成后的密钥可以到上述相同目录下找到,用记事本都可以打开,打开后ctrl + A全部选中,复制,打开github
4.打开用户设置(Settings),左侧菜单栏中找到SSH and GPG keys


点击New SSH key,标题随便取,把刚刚的密钥复制到Key里面

点击Add即可,至此配置完成

将自己的项目传到GITHUB

现在,我们首先尝试将自己的项目传到github上,这样别人可以克隆我们的项目,也可以在更改代码后上传,实现多人同步等操作。
这里建议使用一个没怎么载入过资源的项目,这样好传一点..当然你提前知道怎么过滤也可以,就忽略掉那个资源文件夹,只传代码啥的
1.先进入github,新建一个库

库的名字这些随便取,描述随便写,记得选公有Public,私有似乎要钱?

Readme file勾不勾无所谓,会生成一个txt文件,在下方Add .gitignore这里记得选个Unity,这样会默认帮我们过滤一些文件夹和文件,然后创建仓库
2.这个时候我们再来到要上传的项目本地文件夹下,打开右键菜单,点击下方的 Open Git Bash here

输入命令,初始化本地仓库

$ git init

这时候也可以看到生成了一个新的目录(打开显示隐藏目录).git
3.现在又来到刚刚创建好的github上的仓库,选择右上方的code,再选择SSH,复制一下这个SSH链接

4.来到刚刚的git窗口,输入以下命令,将本地仓库和github上的仓库进行连接:

$ git remote add origin “仓库SSH地址”

其中,origin代表的就是我们给这个远程仓库取的名字,后面还会再次见到((

这样就成功连接了
5.不过现在,本地仓库和github上的还没有什么关系,毕竟文件都不一样,我们先拉取github上的那两个文件(readme以及.gitignore)
输入以下命令

$ git pull origin main

pull命令就是拉取,也就是从云端下载文件到本地,之后进行同步我们会经常使用这个,origin就是远程仓库的别名刚刚有说,那么main是什么呢,我们会发现一个仓库可以有分支,我们现在使用的就是默认的main分支,是自动创建好的,今后在团队协作的过程中,我们可能会新建分支,而这个默认的分支也可以表述为origin/main

输入完成后,可以看到在自动下载文件,成功后即可在本地文件夹找到刚刚的那两个文件

但刚刚只是将github仓库上我们本地没有的东西下载下来,现在来将本地仓库的文件上传到云端,实现真正的同步,但是刚刚也有提到,对于Unity项目,美术资源尤其占空间,所以要用到刚刚的.gitignore文件,来帮助我们过滤,创建仓库时我们选择了Unity模板,它已经自动帮我们过滤了,这个时候我们可以输入命令来查看本地和云端仓库的情况:

$ git status


可以看到,实际上有很多文件云端仓库都没有,但这里只出现了这几个文件和文件夹,不过这还不够,现在我们来修改.gitignore文件,过滤资源相关的文件夹
这里我是这样操作的:将所有美术相关资源文件在项目里新建一个Resource文件夹,好了,记住它的名字,现在打开.gitignore文件,可以看到已经写了一堆了,大多都是过滤相关的规则
首先思考要上传什么东西,一般来讲就是Assets Packages和ProjectSettings,所以对于另外的,要进行过滤,根据刚刚的git status查询,我们在.gitignore中加上两行

.plastic/
.vsconfig

现在再次输入git status(记得保存),会发现都消失了

现在在加入一行,也就是刚刚的Resource文件夹,由于它在Assets目录下,要稍微改一点东西

/[Aa]ssets/[Rr]esource/

然后再次git status,这里就看不到啥变化了,但其实是过滤了的!
现在正式开始上传,其实就三步走:

$ git add .
$ git commit -m "test first"//这里引号里写一些讯息,比如版本更新之类的
$ git push origin main //push到远程仓库的main分支

如果成功的话,就可以看到一串上传的进度显示,如果最后一步失败的话,尝试一下输入这个命令再进行push:

$ git branch --set-upstream-to=orgin/main //将本地的当前分支与远程的main分支链接

这些命令具体的一些用法解析可以去百度一下,有很多类似的文章
push成功后,打开github上刚刚的仓库网页,已经可以看到新的文件了

那么总结一下,以后我们一般是这样干的:
第一步 git status,看看有啥改动
第二步 git add .
第三步 git commit -m "提交信息"
第四步 再pull一下,这点很重要后面会说明
第四步 git push
而拉取云端的话,就是git pull,以后一般就会用到这些