之前从没用过代码仓库管理工具,第一次使用sourcetree与git配合上传unity3d工程到码云远程仓库出现了一点小问题,码云中其实有自带的unity工程unity.gitignore文件但是直接从本地上传了工程之后,丢失了很多.dll文件,而且手动修改.ignore时候才了解到ignore文件有自己的书写规则。
-
使用的sourcetree版本是1.9.6.1
-
sourcetree内嵌git版本2.8.1
-
Unity3d版本5.4.2f2
-
托管平台:码云
在码云上创建了远程仓库,然后.ignore文件使用码云中为unity工程特定的.gitignore文件,这个ignore文件的内容是:
[Ll]Library/
[Tt]emp/
[Oo]bj/
Autogenerated VS/MD solution and project files
*.csproj
*.unityproj
*.sln
如果在码云上添加的工程是普通工程,不是unity.gitignore,那么需要手动书写一份.gitignore文件,然后使用sourcetree中的git命令行模式来编译一下,使你修改过的ignore配置文件生效
git rm -r
git add .
git commit -m "update .gitignore"
上面的步骤操作完后,会发现所写的忽略文件确实没有被上传到远成仓库,但是很奇怪的是,并没有书写忽略.dll的语句,但是远端.dll也被忽略,这个地方不知道是为什么,所以只能手动添加不忽略.dll文件
!*.dll
[Ll]Library/
[Tt]emp/
[Oo]bj/
Autogenerated VS/MD solution and project files
*.csproj
*.unityproj
*.sln
以为这样就可以了于是试了一下,sourcetree中果然有了关于.dll文件的提交请求,提交之后,在别的电脑上拉取了一下发现工程还是报错了,仔细检查后发现自己的unity工程中有一个破碎插件中居然有个文件夹叫Library。。。无语了,于是查了一下关于.ignore文件的语法问题,果然有解决方案:
点这查看.ignore相关语法
!*.dll
/Library
[Tt]emp/
[Oo]bj/
# Autogenerated VS/MD solution and project files
*.csproj
*.unityproj
*.sln
最终将Library右边的”/”符号挪到了前面,这样只忽略.ignore同级文件夹下的library,破碎插件中的library重新回到了sourcetree的提交请求中,再次上传至码云ok。
第一次写csdn的博客,大家可以随便吐槽。