先决条件
安装了Git 和 LFS,Unreal Engine,注册了Azure账号
Git:会作为版本控制命令行工具。
Git Large File Storage (LFS):Git 大文件存储 (LFS) 用 Git 内部的文本指针替换音频样本、视频、数据集和图形等大文件,同时将文件内容存储在 GitHub.com 或 GitHub Enterprise 等远程服务器上,帮助您绕过 Git 仓库大小限制,而虚幻项目很快就会遇到这种限制。
Azure:相对比Github,Azure拥有无限的 Git LFS 存储空间,并且完全免费。
初始化设置
创建虚幻工程项目
初始化 Git
在项目所在的顶层文件夹中打开一个终端 or Git。
$ git init
添加.gitignore
还需要设置一个合理的 .gitignore
,这样我们就不会向 Git 添加我们不想跟踪的东西。
在虚幻的工程文件夹中手动创建一个.gitignore文件,并且在文件中添加需要让git忽略的内容,可以在此处找到要添加的内容,也可以根据自己实际需求自行添加。
分享一下我是用的gitignore文件内容:
# Visual Studio 2015 user specific files
.vs/
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
*.ipa
# These project files can be generated by the engine
*.xcodeproj
*.xcworkspace
*.sln
*.suo
*.opensdf
*.sdf
*.VC.db
*.VC.opendb
# Precompiled Assets
SourceArt/**/*.png
SourceArt/**/*.tga
# Binary Files
Binaries/*
Plugins/*/Binaries/*
# Builds
Build/*
# Whitelist PakBlacklist-<BuildConfiguration>.txt files
!Build/*/
Build/*/**
!Build/*/PakBlacklist*.txt
# Don't ignore icon files in Build
!Build/**/*.ico
# Built data for maps
*_BuiltData.uasset
# Configuration files generated by the Editor
Saved/*
# Compiled source files for the engine to use
Intermediate/*
Plugins/*/Intermediate/*
# Cache files for the editor to use
DerivedDataCache/*
设置 Git LFS
在项目文件夹中手动添加一个 .gitattributes
文件并填充此处的内容 。添加此文件的目的是告诉 LFS 应该存储哪些文件,以及文件是否可锁定。
# Unreal Engine file types.
*.uasset filter=lfs diff=lfs merge=lfs -text
*.umap filter=lfs diff=lfs merge=lfs -text
# Raw Content file types.
*.3ds filter=lfs diff=lfs merge=lfs -text
*.bmp filter=lfs diff=lfs merge=lfs -text
*.exr filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.mov filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.xcf filter=lfs diff=lfs merge=lfs -text
# Anything in `/RawContent` dir.
/RawContent/**/* filter=lfs diff=lfs merge=lfs -text
添加初始化内容
确认项目文件夹中LFS状态
$ git lfs install
> Git LFS initialized.
添加新增文件
$ git add .
检查 LFS 是否会正确处理我们的.uasset 文件
$ git lfs status
一切正常,能看到新创建的工程文件是由git控制还是lfs控制。
第一次提交
确保 Git 使用正确的电子邮件
$ git config user.name "Your Name Here"
该电子邮件要跟 Azure 账号信息一致
$ git config user.email your@email.example
然后
$ git commit
注意,点击commit后会出现上述内容:
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
这是表明需要手动填写commit的描述文字!遵循下面的操作:
You press i
, and you enter insert
mode. You can navigate around the text and insert what ever you want. When done, press Esc
. This makes you exit insert
mode. Next you have to press :wq
, which means to write and quit.
(按下 i
键,进入 insert
模式。你可以在文本中导航并插入任何你想要的内容。完成后,按下 Esc
。这将退出 insert
模式。接下来,你必须按下 :wq
,意思是写入并退出)
commit成功后会显示:
检查提交文件的状态
$ git status
Azure 设置
创建一个新的仓库文件
推送设置
在我们推送之前,您需要进行配置更改以避免出现问题。
git config http.version HTTP/1.1
如果担心在未来的项目中可能会忘记设置此项,可以全局设置该配置
git config --global http.version HTTP/1.1
推送
确保使用 HTTPS 来设置您的远程,因为不幸的是 Git LFS 对 SSH 没有很好的支持。
接下来:
$ git remote add origin https://thenameyoupicked@dev.azure.com/thenameyoupicked/Git%20LFS%20Test/_git/Git%20LFS%20Test
如果上面指令出现以下提示问题:
error: remote origin already exists.
是因为“origin”不可用。“origin”是一个约定,而不是命令的一部分。“origin”是远程存储库的本地名称,可以改写成以下名称:
git remote add myorigin git@github.com:myname/oldrep.git
当点击“推送”按钮时,应会弹出一个窗口,提示您登录我们之前创建的 Azure 账户。
$ git push -u origin --all
or:
$ git push -u myorigin --all
完成:
如果刷新“存储库”页面,应该会看到刚才提交的工程内容!