3.Git管理unity专案

使用Git管理专案,进行版本控制(version control)

剩下的27天为了预防万一,我将采用git和github实作版本控制。
(不一定要进行版本管理这一步骤,可以略过明天直接制作游戏就好唷~:D)

Git是什麽?

简单来说是一个纪录文件变化的软件。

每一个版本都记录下来,如果哪一天出错有大bug,可以叫回前一次的版本,直接回到没问题的时候,天下太平的好软件。叫出来之後可以看看被改动的程序码是哪一些?方便找出问题点并且修正。
安装下载Git和注册github的部分,网上教学非常多就不赘述,这篇直接从unity需要的指令开始吧!

使用Git的时候,我信奉一个守则:不偷小懒才是真的偷懒。

1.写清楚,每一次版本管理内容(commit messege)不要乱写什麽"喵喵喵",尽量把功能或debug什麽东西描述清楚。

2.勤劳git,做好一个功能git一次,每天git个好几次都没关系。

举手之劳的事情做好,在回顾找程序码的时候会很舒服;出事之後找版本回来的时候,要修改的内容幅度越小,程序码越细越轻松。不偷小懒到时候真的会恨自己XD

就像写程序设定变数的时候,刚开始学可能会设定int a,这种完全没有意义的代号,等程序肥大起来後,在茫茫程序海中看到一个a,一定会气死,根本不知道是什麽意思有什麽功能,还要找定义。

Git常用指令

cd     //(change director) 切换工作目录
cd d:     //切到d槽
cd Program Files //进入目录cd+ +目录名称
cd ..  //回上一目录
git init      //初始化 Git Repository 初始化GIT专案
git status    //观察Repository档案,追踪状况
git add 档名.副档名   //将档案加入追踪(index)清单
git add .       //将所有改过的档案都加入追踪清单
git commit -m"版本更新讯息" //建立一组版本更新(commitment)
git log        //查看版本纪录
git branch     //查看分支(Branch)
clear          //清除
pwd    //查看此页位置

步骤

一、事前准备:建立要版本控制的档案,要确保档案没有二进制文件,并且排除不必要的文件。

二、加入Git:决定好要git的资料夹然後init git,并且设定.gitignore和README.md文件。(准备unity的.gitignore)- 可以使用github提供的~

三、push到github:开好github的repository,拿到网址後push上去。
*如果不使用Git,纯使用github desktop可以看这个教学影片


一、事前准备:

1.下载、安装、注册Git和github

2.新增一个专案 (建议名称和所有路径使用英文还有千万不要有空白)
Git中使用中文可能会出现乱码,为了避免这个情况发生因此游戏的专案名字和路径我都设定成英文的
Git处理空白比较麻烦,需要使用CRLF的语法,为了避免节外生枝,这里先不要有空白。
看不到图片
(直接开一个新专案XD)

3.编辑unity专案设定
a. 设定文件属性
因为大部分由系统产生的的二进制文件(binary .bin),没有办法进行比较,git无法处理合并作业,所以我们要让系统产生一般文字文件(Text),才能进行版本管理。
Edit > Project Settings
看不到图片
点选Editor
AssetSerialization 设定成 Force Text
看不到图片
bin的优点是档案较小,如果只有自己开发,没有要git,没有要和别人合并档案可以考虑。

b. 设定版本控制Mode
点选Version Control
Mode设定成 Visible Meta Files
看不到图片
版本控制有四种Mode,把隐藏的Meta文件的属性设为可见,git就可以存取文件内容
(Meta文件是unity用YAML语言写的档案,会储存GUID、资源导入设定、资源档案id、位置...重要资讯,如果这个档案被搞坏或不见,整个游戏档案就会悲剧)

4.写好要忽略的文件档(准备unity的.gitignore)- 这里下载github提供的

unity会自动生成很多小档案,那些小档案不需要进行版本控制,只需要控制我会手动编辑更改的部分就好。所以要在git加上忽略档案,标记哪些是我不要版本控制的档案。

注意.gitignore写法是否符合自己需求
在使用.gitignore档案时,检查路径有没有符合自己的需求。
我会另外创一个资料夹,把专案资料夹包在里面,所以路径会修改。
看不到图片
.gitignore档案和glob语法一样

glob语法
一、档案名称表示
		[Ll]ibrary/  资料夹Library或library
		[Ll]ibrary   档案名Library或library
		lib.a    叫做lib.a的档案
		.a       叫做.a的档案
		*.a      什麽.a   例如:abc.a、ASD.a都是,只要以.a结尾
		Law*     Law什麽  例如:Lawer.a Law.obj,只要以Law开头

二、特殊符号元
		*   可取代任意数量字元
		**  任意中间目录,例如a/**/b;a/b/c或a/r/f/b皆符合
		[abc] 配对[]内任一字元
		[a-z] 配对[-]范围内任一字元
    !   除了
    #   注解
    /abc 当前目录中的abc
		abc/ abc这个资料夹下

三、官方范例
		# 忽略所有的 .a 文件
		*.a
		# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
		!lib.a
		# 只忽略当前目录下的 TODO 文件,而不忽略子目录中的 subdir/TODO
		/TODO
		# 忽略整个build资料夹
		build/
		# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt ;指忽略doc目录的,其余阶层不管
		doc/*.txt                                                   
		# 忽略 doc/ 目录和其所有子目录下的 .pdf 文件
		doc/**/*.pdf

*另外可以用.gitattributes处理LFS (Large File Storage),把指定的大档案排除在git的存储库外,再於原来的位置留下一个指标档案,将位置指到存储库外的档案。这次的实作中不会用到3D模型那种大档案,所以这个部分就跳过XD。

二、加入Git:

1.建立.git
打开git,找到要版本控制的资料夹,然後输入git init,建立.git 隐藏档。
用git status捡查一下档案状态:D。
看不到图片
已建立.git隐藏档,然後在这个git的目录中有status看到的三个档案。
看不到图片

2.设定.gitignore和README.md文件
这里有一个问题,.gitignore档案和README现在是文字档.txt
我要把他们改成.gitignore跟README.md。

mv hello.html world.html

看不到图片

3. git add (档名)
将档案加入暂存,git add . 会将全部的文件都加入
看不到图片

4.将内容commit
并且好好说明commit内容,不要随便喵喵喵
看不到图片

git status 没事捡查一下状态,发现没问题。
git log 可以捡查commit纪录。
看不到图片

三、push到github:

1.在github建立好repository,并取得HTTPS
看不到图片

2.依照github建议的将git push到1.得到的网址
看不到图片

3.完成後在github上捡查即可
看不到图片


<<:  C++语言和你 SAY HELLO!!

>>:  参加 GAQM CDCP-001 认证考试以获得成功的职业生涯

[Day 30] - 赛後检讨&所以我说那个汇率呢

终於,30天的挑战赛算是完成了~这30天我还没有一天是1:30前睡的呢 不过这段时间真的过得很充实,...

自动化测试,让你上班拥有一杯咖啡的时间 | Day 27 - 学习 cypress window 的用法

此系列文章会同步发文到个人部落格,有兴趣的读者可以前往观看喔。 今天要跟大家分享当网站有用到 Ja...

[FGL] 吸星大法 - IMPORT之 1: 使用extension扩展功能

转换为Genero後,FourJs’ 为了扩展整体程序语言,令他可以执行更多不一定与资料库相关的功能...

DAY26-SQL语法(VIEW应用)

今天要来讲另一个方法,那就是VIEW方法,VIEW方法就是要建立一 个虚拟资料表,资料表本身没有储存...

自动化初步-试着用pyautogui操作一般软件

import pyautogui import pyperclip import time def ...