您需要 登录 才可以下载或查看,没有账号?注册
x
此篇博文主要分享我在工作中使用<span]此博文为本人在蛮牛首发,后复制过来,不涉及侵权。如果因水印问题不便发布,将在后期更换图片,去除水印。 Git是2005年林纳斯·托瓦兹为了对Linux内核开发进行版本控制而开发的一个分布式版本控制软件。因为他觉得CVS架构不好使,而当时流行的Bitkeeper是一款专有软件,与Linux的开源思想有些差异,林纳斯与BitMove协商无果后,于是用10天时间开发出了第一个版本的Git。 Git安装过程看似繁杂,有很多选项,有点迷,但不用管他们,选择好安装路径,一路Next就可以了。 大多数Git服务器都使用SSH公钥进行认证。在使用Git前,必须要确认自己的电脑上是否有SSH公钥及密钥,一般来说,其存在于C:\Users\用户名\.ssh\目录下。如果该目录下没有,那我们就需要使用Git来创建SSH密钥/公钥了。 在电脑桌面右键,选择Git Bash Here,会弹出如下窗口,输入cd ~/.ssh,会提示No such file or directory,说明我们电脑上没有.ssh文件夹。 (2)创建密钥
二、SourceTree 1.SouceTree的安装 在配置密钥前,SourceTree应该会弹出提示框,需要填用户名和邮箱,这个是在推送的时候,用来显示推送人的信息的,之后可以在工具->选项中进行修改。 1.选择你的仓库 2.为仓库添加SSH公钥 选择创建项目,填入相应的信息。如果你选择的仓库这里的.gitignore没有Unity选项,那么可以在克隆项目之后个人进行创建。 4.克隆项目 在项目主页,我们可以选择https或者ssh两种方式对项目进行克隆。Https在每次进行拉取和推送操作时都需要输入仓库的账号和密码,较为麻烦,而SSH则需要确保配置好了SSH公钥,且你必须是项目的拥有者或协同开发人员。 打开文件夹,会存在以下文件。 5.提交、推送 然后我们在项目中新建一个TestSript脚本,并保存场景为TestScene,再打开SourceTree,此时界面会发生如下变化。 红框内的四个文件,即我们刚才创建的脚本和保存的场景以及其对应的.meta文件,下方的是Unity自动生成的ProjectSetting文件夹。而其他的文件夹,如Library,因为我们不需要对其进行版本控制,已经将其添加进.gitignore文件中,所以这里会被自动忽略掉。下面我们对这个界面的主要功能区域进行介绍。 如图,区域2是未暂存文件,我们每次对项目进行的修改都会显示在这里,如果我们选择任意一项,区域3则会显示出该修改的内容。区域1是暂存区,确认文件的修改之后,我们要将修改的文件拖入暂存区中,类似于一步确认操作,如果我们不想暂存,可以再将文件从暂存区拖入未暂存区中。 6.获取、拉取 更改完README.md文件之后,我们在SourceTree中点击获取,会显示出仓库中对比本地的文件的更改,同时拉取按钮与master分支会显示有一个待拉取。点击拉取按钮即可将该文件更新到本地。 7.冲突、解决冲突 我们分别对仓库和本地的README文件进行如下更改,并提交,网页端的提交是直接推送到仓库的。 点击获取,界面会变成如下所示(马赛克部分是我测试冲突用的,目前没有多人协同工作,为了确保演示是正确的,我预先模拟了几遍,请忽略掉,嘿嘿)此时显示的是一个本地的待提交,和一个仓库的待拉取。 点击拉取按钮,这时候会弹出如下提示框。(这里我们不先推送,而是先拉取,是为了确保仓库的版本不会出错,要将冲突放在本地解决,以免出现未知的 问题) 点击关闭,会显示出来冲突的文件,如下所示 如果想简单粗暴一些,那么右键点击冲突文件,然后选择“使用他人版本解决冲突”或者“使用我的版本解决冲突”,如字面意思所示,如果选择其中一个,那么另一个人的修改将被丢弃,在进行此操作时需要与他人协商好。解决冲突之后,我们需要将解决冲突后的文件重新提交,然后再进行推送。 在多人协作开发中,一般是将仓库的文件拉去下来,然后新建分支进行开发,待开发无误之后,再提交Merge Request,由项目的管理者进行分支的合并,以确保项目的安全性。这里因为没有多个成员,所以将不再进行演示。 在使用Source Tree的过程中,可能会有各种各样的错误提示,这种情况不要慌张,先看清楚提示框提示的错误信息,然后再根据错误的信息去解决问题,一般情况下,大多数的错误都是操作不当造成,根据错误信息都可以很快速的解决。 五、微元素更新-Git] 对于工程中的视频、高面数模型、音频、高分辨率图片等资源,往往占用极大部分的空间,造成仓库空间的浪费,为此,Git推出Git LFS(Large File Storage)即大文件存储,以单独存储类似以上的大文件。 1.要求 <span] Git版本:1.8.5及以上 ]2.SourceTree中初始化LFS仓库 以上便是我在工作中使用Git+SourceTree的一些经验,如有疑问,请在评论区留言,如有不足,欢迎指正
|