通过Source tree多人开发 Podfile.lock 冲突问题
先描述下问题:
由于公司为多人开发,因此使用了Source tree来作为代码提交管理控制器,而我们的代码托管用的是码云的服务器,之前创建项目都是利用pod集成第三方SDK,然后将整个项目直接通过source tree上传到码云服务器,一直没出现问题,直到前几天我新建了一个新项目框架,里面集成了高德地图3DMap的SDK,将整个项目想传到码云服务器上,报错
,没错,码云提示单个文件不让超过100M!!!
这时候想了两种办法,
1、pod高德地图旧版本的sdk(小于100M)
2、上传码云服务器时忽略pod文件,也就是只上传Podfile文件,pod里面集成的SDK不上传
由于方法1不能使用最新高德SDK的缺点,暂时没选用,选的是方法2,于是就在提交时选择忽略pod文件,具体忽略方式可参考点击打开链接,注意该博客里设置的针对source tree 全局忽略文件,建议还是针对单个项目添加忽略文件,针对单个项目添加忽略文件具体方法如下:
终端 cd 到该项目文件夹下,
然后出入 ls -a 查看项目文件夹下是否ignore文件,有的话直接
open .gitignore
没有的话先创建 vim .gitignore
然后在open .gitignore 打开后编辑即可,
以上设置好忽略文件后便顺利的将项目传到码云了,以为大功告成(以为需要下载的同事,克隆仓库后pod install一下就好了),然而同事在pod install以后提示本机有一个Podfile.lock文件被修改,需要提交,(后来才知道是因为我和同事的电脑上的pod版本号不一致才导致的pod install以后Podfile.lock文件不一致需要提交),于是同事便提交了,提交后项目完美运行,以为没问题了,But!!!我拉取了同事了提交日志以后
我拉取了同事提交的更新日志以后报了一个错[图片上传失败...(image-d264a1-1536301939080)]
没错,需要我pod install或者update一下,于是照做了,做完项目可以跑成功但发现提示我跟同事一样的问题,Podfile.lock文件需要提交,于是便提交了,然而同事拉取了我的提交日志以后便和我报了一模一样的错,需要pod install或者update一下,这时候发现陷入死循环了!!!
于是考虑忽略Podfile.lock文件,但是期间尝试了很多方法都无法忽略Podfile.lock文件(如果哪位小伙伴有成功忽略该文件的方法请告知,不胜感激!!!),就造成了上面的死循环,每次我和同事有人提交代码其他人一拉就会报错,提示install或者update一下!!!
后来发现每次Podfile.lock文件需要提交时显示的更改内容是pod版本号不一致,于是想到如果我和同事将电脑上的pod版本号统一成一个版本是不是就可以了呢,答案是肯定的(虽然这种方法不是很完美,但是目前没想到更好的方法只能先这样解决了)
于是我和同事将pod版本号统一后,再次pod install或者update的时候便没有提示Podfile.lock文件需要提交,于是终于跳出了上面的死循环了!!!
下面说一下变更本机pod版本号方法
终端输入
sudo gem uninstall -n /usr/local/bin cocoapods -v XXX (xxx是你本机pod版本号)先删除旧版本号
然后安装新版本号的pod
sudo gem install -n /usr/local/bin cocoapods -v YYY (YYY是你们商量的要用的统一pod版本号)
终于大功告成~~~~
另外如果有哪位大神有成功忽略该文件的方法请告知,不胜感激!!!
另外如果有哪位大神有成功忽略该文件的方法请告知,不胜感激!!!
另外如果有哪位大神有成功忽略该文件的方法请告知,不胜感激!!!
重要的事情说三遍~~~