iOS版本控制之Git及三方库管理工具CocoaPods

Git的初始化和访问配置

01 初始化一个本地的仓库

$ git init

02 配置仓库的用户名和邮箱

$ git config user.name "CoderXYF"

$ git config user.email "18310373017@163.com"

03 全局配置git仓库的用户名和邮箱(git仓库在操作的时候会先查找当前仓库的用户名和邮箱,如果没有那么再查找全局的用户名和邮箱)

$ git config --global user.name "CoderXYF"

$ git config --global user.email "18310373017@163.com"

Git仓库项目初始化操作

01 首先先创建Main.m文件

$ touch Main.m

02 查看版本库中文件的状态

$ git status ||红色,那么说明该文件需要添加到git的暂缓区

03 把新创建的文件添加到暂缓区

$ git add Main.m

04 查看版本库中文件的状态

$ git status ||绿色:表示该文件已经被添加到暂缓区中

05 把暂缓区中的更改提交到本地的版本库

$ git commit -m "新创建了文件" Main.m

06 修改main.m文件,重新查看文件的状态

$ echo "hello Main">Main

$ git status ||红色,说明需要做add操作

07 把文件的修改操作添加到sh

$ git add Main.m

08 把更改提交到本地的版本库

$ git commit -m "修改了文件" Main.m

注意点:在SVN中只有新创建的文件需要add操作,而在git中新创建文件或者是修改了文件都需要再做一次add操作

Git起别名操作

SVN

status - st

commit - ci

checkout  - co

update    - up

remove    - rm

Git

在git中可以给任何的命名设置一个别名

$ git config alias.st    "status"

$ git config alias.lalala "status"

$ git config alias.ci    "commit -m"

设置全局的别名

$ git config --global alias.st    "status"

git add .    表示把当前所有的更改都提交到暂缓区

当前的工作区-add-暂缓区-commit-本地的版本库(分支) (-远程的版本库)

Git删除文件操作

SVN :svn remove 文件名

GIT :svn rm    文件名

01  删除工作区中的文件

$ git rm Main.m

02 查看版本库的状态

$ git status || 绿色:删除文件操作不需要添加到暂缓区

03 把更改提交到本地的版本库

$ git commit -m "删除了Main文件"

Git查看版本信息

SVN:

(1)svn update

(2)svn log

Git:

基本方法:git log    ||版本号码使用SHA加密是40位的

加强方法:git reflog  用这种方法来查看版本信息可以看到版本回退操作

Git版本回退(reset)

GIT版本回退的两种情况

[1] 修改了内容,但是还没有提交到版本库

$ git reset --hard HEAD

[2] 修改了内容,并且已经提交到版本库

$ git reset --hard HEAD^

$ git reset --hard HEAD^^

通过版本号回到指定的版本:

$ git reset --hard  04661(五位数的版本号)

Git创建共享版本库说明

共享版本库的几种情况:

[1]搭建服务器,在服务器端设置共享版本库  |正规公司

[2]把共享版本库创建在某个文件夹中

[3]把共享版本库创建在U盘里面

[4]把共享版本库托管在第三方的网站上面(github|oschina|..)

01 创建共享的版本库

$ git --bare init

02 项目组长要对共享版本库做初始化操作

[1]项目组长先连接到共享版本库,把版本库下载到本地

$ git clone 路径

[2]项目组长完成忽略操作

(1) 创建忽略文件.gitignore

$  touch .gitignore

(2) 设置该文件的内容

 https://github.com/github/gitignore/blob/master/Objective-C.gitignore

(3) 把该文件添加到暂缓区中

$ git add .gitignore

(4) 把暂缓区中的内容提交到本地的版本库

$ git commit -m "创建忽略文件"

(5) 把本地的版本库提交到共享的版本库

$ git push

Git共享版本库项目初始化

[1] 通过Xcode来创建代码,该代码内部默认会自动做一次添加操作

[2] 通过终端来把当前的项目提交到本地的版本库

$ git commit -m "初始化项目"

[3] 把本地版本库中的代码提交到共享版本库

$ git push

[4] 创建zhangsan的文件夹表示张三的电脑

[5] 下载共享版本库到张三的电脑

$ git clone 路径

[6] 设置张三仓库的用户信息

$ git config user.name "zhangsan"

$ git config user.email "zhangsan@163.com"

Xcode使用Git(添加静态库)

建议:在本地的仓库中对所有的文件都进行一次add操作

$ git add .

CocoaPods安装与使用

01.先升级Gem(可以省略)

sudo gem update --system

02.切换CocoaPods的数据源

【先删除,再添加,查看】

删除源 gem source --remove https://rubygems.org/

添加源(现在不添加这个源了:https://ruby.taobao.org/,貌似不能用),改以下这个源

gem sources -a https://gems.ruby-china.org/

查看源 gem source -l

03.安装CocoaPods

sudo gem install cocoapods

或者(如10.11系统)sudo gem install -n /usr/local/bin cocoapods

04.设置pod仓库

pod setup

注意:Setting up CocoaPods master repo 一直卡着不动,

加载时间比较长,可以使用commend + n 创建一个新的命令窗口,执行以下命令

cd ~/.cocoapods

du -sh *(这个命令是查看文件加载了多少,或者看有没有开始加载,每几分钟看一次,算是给自己一个镇定剂吧)

或者:更换repo镜像为国内服务器

pod repo remove master

pod repo add master https://gitcafe.com/akuandew/Specs.git(貌似不行了)

pod repo update

或者详见:http://blog.csdn.net/fengsh998/article/details/52172741

05.测试

【如果有版本号,则说明已经安装成功】

pod --version

06.利用CocoaPods来安装第三方框架

[1] 进入要安装框架的项目的.xcodeproj同级文件夹

[2] 在该文件夹中新建一个文件podfile (pod init)

[3] 在文件中告诉CocoaPods需要安装的框架信息

a.该框架支持的平台

b.适用的iOS版本

c.框架的名称

d.框架的版本

07.安装

pod install

pod update --no-repo-update

pod search 搜索框架

08.说明

platform :ios, '7.0' 用来设置所有第三方库所支持的iOS最低版本

pod 'SDWebImage','~>3.7.5' 设置框架的名称和版本号

版本号的规则:

'>1.0'    可以安装任何高于1.0的版本

'>=1.0'  可以安装任何高于或等于1.0的版本

'<1.0'    任何低于1.0的版本

'<=1.0'  任何低于或等于1.0的版本

'~>0.1'  任何高于或等于0.1的版本,但是不包含高于1.0的版本

'~>0'    任何版本,相当于不指定版本,默认采用最新版本号

09.使用pod install命令安装框架后的大致过程:

[1] 分析依赖:该步骤会分析Podfile,查看不同类库之间的依赖情况。如果有多个类库依赖于同一个类库,但是依赖于不同的版本,那么CocoaPods会自动设置一个兼容的版本。

[2] 下载依赖:根据分析依赖的结果,下载指定版本的类库到本地项目中。

[3] 生成Pods项目:创建一个Pods项目专门用来编译和管理第三方框架,CocoaPods会将所需的框架,库等内容添加到项目中,并且进行相应的配置。

[4] 整合Pods项目:将Pods和项目整合到一个工作空间中,并且设置文件链接。

卸载:sudo gem uninstall cocoapods

常见错误:

[!] /usr/bin/git pull --ff-only

原因: CocoaPods的分支不支持当前最新的Xcode版本

解决办法: 删除master分支 重新建立新的分支,然后重新设置仓库即可

sudo rm -fr ~/.cocoapods/repos/master

pod setup

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容