unity版本控制PlasticSCM转git
这篇适合用惯了scm的要换git的同学看。之前一直是用的unity自己的版本控制软件,最近要用git,还是比较习惯图形化界面,所以用了SourceTree(只是提供一个图形化界面,内里还是git),文档在这
Get started with Sourcetree | Sourcetree | Atlassian Documentation
想着对比着理解应该好理解一些。
git对本地仓库的文件有四种状态,git:local、add(进暂存区)、commit(使head指向要提交的内容)、push(上传到云端),观察scm的工作流会发现缺的是commit这一步,scm会自动指向要提交的内容。个人推测是因为git可以在本地存多个节点,所以多了commit这一步,这样方便在本地回退
(图源git 简明指南)
并且scm会自动add到暂存区,git需要手动add
另外git里的推送对应着签入(check in)
一、创建项目
两种方法
1.先在本地创建仓库并推送到云端,再在本地仓库所在位置建立项目https://juejin.cn/post/7255720279934828599
这个方法没试过,相当于就是创个文件夹再往里填东西
2.已有项目上传到云端仓库
我没有在sourcetree里找到对应的命令按钮,所以我直接在项目文件夹里打开gitbash然后init了
进去输入git init就行
然后打开sourcetree,找到add,填好信息添加就行了
成功后会直接弹出一个界面
这时候打开你的github应该就有仓库名了,但是里面是空的,因为我们还没推送任何东西进去。
回到sourcetree,我们不需要把所有的文件都进行版本管理,比如说Library文件,这种会自动生成的文件不需要进行管理(拿不准哪些需要忽略的同学可以看看plastic的处理方式),图里这几个都可以忽略。logs和.csproj也可以忽略,勾漏了。有temp的话temp也可以忽略,总之就是比着plasticscm的来不会出问题
右键后点忽略就行。
要忽略的忽略完了点暂存所有即可
注意,此时它仍旧在本地,我们需要点击提交
提交完成后再点击推送
会发现推送一直转圈,因为没有设置远端,点远端设置一下
复制自己的url地址
再次点击推送
推送成功后打开自己github/lab ,就有东西啦
ps.如果推送时出现这个报错是因为连不上服务器,多试几次总有能连上的时候。
git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks push -v --set-upstream origin master:master fatal: unable to access
二、推送更改
对项目进行了一定修改后,需要推送更改,流程和创建项目差不多,就是暂存->提交->推送,在暂存的时候记得看一下有没有自己并没有改过的文件,这类文件可以给它恢复一下,没必要提交
(随便点的一个文件举例,不是必须恢复的意思)
黄色icon是修改过的意思
提交完以后就推送。不推送是不会传到云端仓库的!看这个图谱,你可以多次在本地暂存提交而不推送,那么这些节点就只会留在你的本地
右键还可以回滚提交(回滚会再创一个节点),这些都是在本地进行的
另外还可以直接重置
软合并:会回到暂存选中节点后所有节点改变的东西的状态
混合合并:会回到未暂存选中节点后所有节点改变的东西的状态
强行合并:相当于scm里切换到该节点并删除该节点后的所有东西
推送后也可以这样回退
三、从其他分支合并到主线
还没到需要合并的时候,暂时只有一个知识点要记录
merge 分支合并,合并后仍需要像scm一样再签入(push)一次,和scm一样,冲突了会提示你哪些冲突的,手动修复就行,右键冲突的文件选择使用我的还是他们的。处理完以后再次点击合并即可
(我还没建分支,大家应该选中自己的分支右键点合并哈)