URL
status
type
date
slug
summary
tags
category
password
icon

Unity前期配置

在Project Settings中,进行项目设置:
在签入您的项目之前,您必须告诉 Unity 稍微修改项目结构以使其与将资产存储在外部版本控制系统中兼容。
notion image
  • 在 Edit → Project Settings → Editor → Version Control Mode → Visible Meta Files 中切换到 Visible Meta Files。
    • 这些文件将具有.meta 文件扩展名,第一部分是与其关联的资产的完整文件名。在 Unity 中移动和重命名资产也应该更新相关 .meta 文件。但是,如果您从外部工具移动或重命名资产,请确保也同步相关 .meta 文件。
notion image
  • 在 Edit → Project Settings → Editor → Asset Serialization Mode中切换到 Force Text
    • 这将为Assets目录中的每个资产显示一个文本文件,其中包含 Unity 所需的必要簿记信息。
流程示例:创建一个新项目并将其导入到 VCS (GIT) 存储库
  1. 在 Unity 中创建一个新项目并将其命名为ReverieSample. 您可以在此处添加任何初始资产或稍后添加它们。
  1. Edit->Project Settings->Editor中启用 Visible Meta files
  1. 在 Edit → Project Settings → Editor → Asset Serialization Mode中切换到 Force Text
  1. 退出 Unity(这可确保保存所有文件)。
  1. IMP: 为不必要的文件夹和文件设置忽略.gitignore过滤器
  1. 使用 GUI 工具或命令行在 VCS 中导入项目,并将其推送到 VCS 远程/本地存储库。
  1. 从 VCS 存储库中检出项目并检查 Assets, PackagesProjectSettings 目录是否已版本化。
  1. 使用 Unity 打开签出的项目。打开项目将重新创建 Library 目录和其他必要的文件和目录。
  1. 最后,您可以自由地进行和提交更改。现在应该设置并准备好项目。
将项目签入版本控制系统时,应将Assets, PackagesProjectSettings 目录添加到系统中。该 Library目录应该被完全忽略。当使用 .meta 文件时,它只是导入资产的本地缓存。创建新资产时,请确保将资产本身和相关 .meta 文件都添加到版本控制中。
notion image
IMP 注意: 如果您使用版本控制,每个团队成员都应该检查项目的第二个副本以进行测试。更改后,应更新和测试第二个副本,即干净副本。任何人都不应该对他们的干净副本进行任何更改。这对于捕获丢失的资产特别有用。

创建git本地仓库

准备工作完成之后,我们就可以开始创建版本管理仓库,这一小节分为如下几个基本操作:
  • 初始化仓库
  • .gitignore
  • add/commit
  • 回退操作

1.初始化仓库

然后我们回到刚刚新创建的项目路径下,在这个路径中打开终端:
在这个路径中输入:git init
成功后会在项目文件夹中发现多了一个.git文件夹
这就代表我们初始化git本地仓库成功了。

2..gitignore

在Unity3D中进行版本控制主要针对 Assets ProjectSetting 这两个文件夹,因为除此以外的文件和文件夹都是Unity3D在运行过程中产生的临时文件,这些文件会在使用Unity3D打开项目后重新生成,因此无需对这些文件或文件夹进行版本控制
创建一个.gitignore文件
在文件中填入我们要忽略的文件。

3.add/commit

先用git status看下当前仓库的状态:
这时候可以看到,.gitignore 中罗列的文件都被忽略了,如果不想上传Log、.vscode等文件夹也可以一并添加上去,最后只需要留下Assets和ProjectSettings文件夹即可。
修改后:
现在把项目文件添加到git本地版本控制中:
输入:git add ./ 将文件添加到暂存库
输入:git commit -m "Init unity project" 将文件提交到版本管理
输入:git log 查看提交记录

4.修改和回退

我们在开发游戏的过程中会不断的产生修改,很可能把原本正常的一个功能修改的不能使用,这时候想要复原都追悔莫及。现在有了版本管理工具,这个操作就变得无比简单了。
假设我们新建了一个文件:test_error.txt
文本内容是:My stupid boss!
现在,你把这个文件commit上去:
这个文本很明显是写错了,不可能是你的真实心声(也可能是)O(∩_∩)O哈哈~。
现在你想回退到上一个版本怎么办呢?
因为这个项目很小,你可以很容易找到error_text.txt,然后把他删掉。但是当实际工作中,代码比较多的时候,锁定问题往往非常困难,这时候就可以使用git reset,帮助我们回退到上一个正确的版本。
  1. 返回上一个版本^
2. 返回指定版本:
(后面的f2b63是git log看到的提交记录的标号前缀)
回退后,可以看到error_text.txt也消失了,这是你就可以在上一个正确的版本基础上重新开始你的开发工作了。

Git的基本操作

初始化设置
初始化设置
git config --global user.name "Your Name" 配置用户名
git config --global user.email "mail@example.com" 配置邮箱
git config --global credential.helper store 存储配置
创建仓库
创建仓库
git init <project-name>
创建一个新的本地仓库(省略project-name则在当前目录创建。)
git clone<url>
克隆一个远程仓库。
四个区域
四个区域
工作区(Working Directory)
就是你在电脑里能实际看到的目录。
暂存区(Stage/Index)
暂存区也叫索引,用来临时存放未提交的内容,一般在.git目录下的index中。
本地仓库(Repository)
Git在本地的版本库,仓库信息存储在.git这个隐藏目录中。
远程仓库(Remote Repository)
托管在远程服务器上的仓库。常用的有GitHub、GitLab、Gitee。
文件状态
文件状态
已修改(Modified)
修改了但是没有保存到暂存区的文件。
查看仓库状态,列出还未提交的新的或修改的文件。
已暂存(Staged)
修改后已经保存到暂存区的文件。
查看提交历史,
已提交(Committed)
把暂存区的文件提交到本地仓库后的状态。
特殊文件
特殊文件
•git
Git仓库的元数据和对象数据库
• gitignore
忽略文件,不需要提交到仓库的文件
• gitattributes
指向当前分支的指针
• gitkeep
使空目录被提交到仓库
• gitmodules
记录子模块的信息
•gitconfig
记录仓库的配置信息
添加和提交
添加和提交
git add <file> 添加一个文件到暂存区, 比如git add . 就表示添加所有文件到暂存区。 git commit -m "message" 提交所有暂存区的文件到本地仓库。 git branch <branch-name> git commit -am "message" 提交所有已修改的文件到本地仓库。
分支
分支
git branch 查看所有本地分支,当前分支前面会有一个星号*,-r查看远程分支,-a查看所有分支。 git branch <branch-name> 创建一个新的分支。 git checkout -b <branch-name>
切换到指定分支,并更新工作区。 git branch -d <branch-name> 删除一个已经合并的分支。 git checkout -D <branch-name>删除一个分支,不管是否合并。 git tag <tag-name> 给当前的提交打上标签,通常用于版本发布。 git merge --no-ff -m message <branch-name > 合并分支,--no-ff参数表示禁用 Fast Forward模式,合并后的历史有分支,能看出曾经做过合并,而-f参数表示使用 FastForward模式,合并后的历史会变成一条直线。
notion image
notion image
git squash <branch-name> 合并&挤压 ( squash) 所有提交到一个提交。
git checkout <dev> git rebase <main> rebase 操作可以把本地未push的分叉提交历史整理成直线,看起来更加直观。但是,如果多人协作时,不要对已经推送到远程的分支执行rebase操作。 rebase不会产生新的提交,而是把当前分支的每一个提交都“复制”到目标分支上,然后再把当前分支指向目标分支,而merge会产生一个新的提交,这个提交有两个分支的所有修改。
notion image
撤销和恢复
撤销和恢复
git mv <file> <new-file>
移动一个文件到新的位置。
git rm <file>
从工作区和暂存区删除一个文件,并且将这次删除放入暂存区。
git rm --cached <file>
从索引/暂存区中删除文件,但是本地工作区文件还在,只是不希望这个文件被版本控制。
git checkout <file> <commit-id>
恢复一个文件到之前的版本。
git revert <commit-id>
创建一个新的提交,用来撤销指定的提交,后者的所有变化将被前者抵消,并且应用到当前分支。
git reset --mixed <commit-id>
重置当前分支的HEAD为之前的某个提交,并且删除所有之后的提交。
--hard参数表示重置工作区和暂存区,
--soft参数表示重置暂存区,
--mixed参数表示重置工作区。
git restore --staged <file>
撤销暂存区的文件,重新放回工作区(git add的反向操作)。
查看状态或差异
查看状态或差异
git status
查看仓库状态, 列出还未提交的新的或修改的文件。
git log --oneline
查看提交历史,--oneline表示简介模式。
git diff
查看未暂存的文件更新了哪些部分。
git diff <commit-id> <commit-id>
查看两个提交之间的差异。
Stash
Stash
git stash save "message"
Stash操作可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作。
-u 参数表示把所有未跟踪的文件也一并存储;
-a 参数表示把所有未跟踪的文件和忽略的文件也一并存储;
save参数表示存储的信息,可以不写。
git stash list
查看所有stash。
git stash pop
恢复最近一次stash。
git stash pop stash@{2}
恢复指定的stash,stash@{2}表示第三个stash,stash@{0}表示最近的stash。
git stash apply
重新接受最近一次stash。
git stash drop stash@{2}
pop和apply的区别是,pop会把stash内容删除,而apply不会。
添加和提交 可以使用git stash drop来删除stash。
git stash clear
删除所有stash。
远程仓库
远程仓库
git remote add <remote-name> <remote-url>
添加远程仓库。
git remote -v
查看远程仓库。
git remote rm <remote-name> 删除远程仓库。
git remote rename <old-name> <new-name> 重命名远程仓库。
git pull <remote-name><branch-name> 从远程仓库拉取代码。默认拉取远程仓库名 origin的 master或者main分支。 git pull --rebase 将本地改动的代码rebase到远程仓库的最新代码上(为了有一个干净、线性的提交历史)。 git push <remote-name><branch-name>
推送代码到远程仓库(然后再发起 pull request)。 git fetch <remote-name> 获取所有远程分支。 git branch -r 查看远程分支。 git fetch <remote-name〉<branch-name>
Fetch某一个特定的远程分支。
GitFlow
GitFlow
GitFLow 是一种流程模型,用于在Git上管理软件开发项目。 主分支(master/main):代表了项目的稳定版本,每个提交到主分支的代码都应该是经过测试和审核的。 开发分支(develop):用于日常开发。所有的功能分支、发布分支和修补分支都应该从开发分支派生出来。 功能分支(feature):用于开发单独的功能或者特性。每个功能分支都应该从开发分支派生,并在开发完成后合并回开发分支。 发布分支(release):用于准备项目发布。发布分支应该从开发分支派生,并在准备好发布版本后合并回主分支和开发分支。 热修复分支(hotfix):用于修复主分支上的紧急问题。热修复分支应该从主分支派生,并在修复完成后,合并回主分支和开发分支。
参考文档:
 
Unity读写Excel(使用epplus类库)游戏开发小团队的项目与开发建议
Loading...
Cloud
Cloud
Free writing
最新发布
RPG Maker MZ素材规格
2025-1-17
Project Pianting设计文档
2025-1-7
第一年
2025-1-6
水族馆
2025-1-6
Flow in Games
2025-1-6
MISIDE текстовое интервью с разработчиком
2025-1-6
公告