写在前面: 很多团队(尤其是美术同学)习惯了 SVN 的“直观”,对 Git 感到恐惧。其实 Git 并没有那么难,只是逻辑变了。 核心区别: SVN 是集中式的 (服务器坏了大家都得停工),Git 是分布式的 (每个人电脑里都有一份完整的版本库)。
Hero.psd 时“锁住”它,别人就不能改了。这对二进制文件(图片、模型)至关重要,防止冲突。Git 默认没有锁(需要 LFS 插件)。Art/Characters 文件夹。Git 必须把整个仓库(包括你不关心的代码和文档)全拉下来。忘掉命令行! 我们推荐使用 Sourcetree 或 GitHub Desktop 或 TortoiseGit (小乌龟,长得跟 SVN 很像)。
| 你在 SVN 做的操作 | 在 Git 里的对应操作 | 区别 |
|---|---|---|
| Update (更新) | Pull (拉取) | 没区别,都是把服务器的东西拉下来。 |
| Commit (提交) | Commit (提交) + Push (推送) | 这是最大的坑! SVN 提交就完事了。 Git 提交只是存到你自己电脑里,必须再点一下 Push 才能传到服务器给别人看。 |
| Revert (还原) | Discard / Reset | 放弃修改,还原到上次提交的状态。 |
| Lock (锁定) | LFS Lock | 需要专门配置 LFS 才能用。 |
假设你使用 TortoiseGit (因为它和 SVN 操作最像):
TortoiseGit -> Pull。OK。Git Commit -> "master"。art: 修改了吸血鬼主角的模型贴图。Commit。Push 按钮,一定要点一下! (或者 Commit 完单独右键 -> Push)。Updates were rejected。Data.xlsx,小王也改了 Data.xlsx,而且他比你先 Push。Pull。Git 会试图合并。Library/, Temp/, Logs/, .vs/ 屏蔽掉。SVN 以前可能把这些垃圾都传上去了,Git 绝对不行。.gitattributes,把 *.psd, *.fbx, *.png, *.wav 全部走 LFS。否则 1个月后你的 Git 仓库会大到拉不下来。一句话总结:
Git = SVN + “本地仓库”。
以前是 写完 -> 上传。
现在是 写完 -> 存本地 (Commit) -> 上传 (Push)。
多了一步,但更安全。