一、git 和 cocoapods 基本使用

一、git的基本使用

例子:
我需要在本地创建一个代码仓库,然后我们还需要一个远程的代码仓库,然后把两者链接起来,给你的代码打上一个tag,然后删掉

两种方式:

  1. 我们将远程代码仓库直接克隆到本地然后再打tag:
# 在 github 创建一个叫 Test12的仓库
$ git clone https://github.com/lir9205/Test12.git   #将远程仓库克隆到本地
$ cd /Test12/Classes  
$ touch Person.h Person.m #创建一个Person.h 和 Person.m 文件
$ git add . #将工作区所有不在暂缓区的内容添加到暂缓区
$ git commit --m ' 创建了 Person 类'  #将在暂缓区的所有内容提交到本地版本库,清空暂缓区
$ git push  # 上传到远程仓库
$ git tag '0.0.1' # 打上一个 tag 0.0.1
$ git tag #查看所有 tag
$ git push --tags #将新添加的 tag 提交到远程仓库
# 修改Person.h 文件,再提交一次
$ git add .
$ git commit --m '修改了 Person.h 文件'
$  git push
$ git tag '0.0.2'
$ git push --tags
# 通过 tag 保存或下载每个版本的代码
$ git log #查看提交日志
$ git tag -d 0.0.2 # 本地删除 tag 0.0.2
$ git push origin :0.0.2   # 将删除操作上传到远程仓库

git commit 一次就会产生一个版本号(是一个40位哈希值)
git tag '0.0.1' 每个 tag 对应一个版本号,可以通过 tag 下载不同的版本

  1. 本地初始化一个代码仓库,远程代码仓库和它进行链接,最后打tag:
# 本地创建一个文件夹 Test22,在 github 也创建一个叫 Test22的仓库
$ cd /Test22
$ git init  # 初始化一个代码仓库
$ git remote add origin https://github.com/lir9205/Test22.git #让本地与远程仓库建立连接
$ git remote # 验证是否连接上,查看远程所对应的代码仓库
$ git pull origin master #将远程仓库的 master 分支拉取到本地
$ cd /Test22/Classes 
$ touch Cat.h Cat.m
$ git add .
$ git commit --m ' 创建 Cat 类'
$ git push origin master # 推送到远程仓库
$ git tag '0.0.1'
$ git push --tags
# 修改Cat.h 文件,再提交一次
$ git add .
$ git commit --m '修改了 Cat.h 文件'
$  git push origin master
$ git tag '0.0.2'
$ git push --tags
$ git tag -d 0.0.2 #本地删除 tag 0.0.2
$ git push origin :0.0.2  #远程删除 tag 0.0.2

编辑或新建的代码文件需要先添加到暂缓区,然后提交到本地之后,在推送到远程仓库。


git 工作区
  1. git 回滚代码到某一次提交

回退命令:

$ git reset --hard HEAD^         回退到上个版本
$ git reset --hard HEAD~3        回退到前3次提交之前,以此类推,回退到n次提交之前
$ git reset --hard commit_id     退到/进到 指定commit的sha码

强推到远程:

$ git push origin HEAD --force

二、Cocoapods基本使用

例子:我们新建一个工程,在我们工程当中使用cocoapod安装一个AFN框架

  1. 如何安装cocoaPods http://www.jianshu.com/p/9e4e36ba8574
  2. pod install 和 pod upadate区别

Podfile.lock 文件(保存的版本信息)存在的话, pod install 会读取podfile.lock里面的版本信息,保留原来的版本信息,如果不存在的话会直接读取 Podfile 文件,根据 Podfile 文件中的版本号进行下载。 执行 pod install 之后就会生成或跟新Podfile.lock 文件。

pod update 不管Podfile.lock 文件是否存在,都会去读取 Podfile 文件,根据 Podfile 文件中的版本号进行下载。如果没有写明版本号就会下载最新版本。

一般情况下使用的是 pod install。

  1. Cocoapods的图解机制


    Cocoapods的图解机制1

资源库 -> Caches -> Cocoapods -> Pods -> Release:我们每次 pod install 之后缓存到本地的框架
资源库 -> Caches -> Cocoapods -> Pods -> search_index.json(检索索引文件)记录了本地索引库中所有框架描述文件的信息
个人 -> .cocoapods (本地索引库) -> repos -> master -> specs -> 0/1/2/.../9/a/b/.../f(框架描述文件)

$ pod setup # 将远程索引库克隆到本地索引库
$ pod search xx # 检查是否存在检索索引文件(json格式),如果没有就自动创建,根据检索索引文件(json格式)对应的类目(像查字典一样)在本地索引库查找对应的框架描述文件
$ pod install # 根据找到的框架描述文件中的源代码下载地址下载框架安装到我们的项目中

例子:我们创建了一个第三方框架,我们要把它提交到远程索引库,使用pod install的方式安装到我们的工程当中

Cocoapods的图解机制2
$ pod spec create WCHChat  #在源代码所在路径创建框架描述文件 WCHChat.podspec
# 编辑 WCHChat.podspec 文件中的框架信息
$ pod lib lint #进行本地校验
# 先提交到远程仓库
$ git add .
$ git commit --m ' 创建了.spec 文件'
$ git push origin master
$ pod lib lint --allow-warnings  #进行本地校验
$ pod spec lint --allow-warnings  #进行远程校验,出错了,因为没有添加 tag
$ git tag '0.0.1' #添加 tag 需要跟.spec中的版本号一致
$ git push --tags
$ pod spec lint  --allow-warnings#再次进行远程校验,校验通过
#本地校验不会校验 homepage,source, tag,version,所以不需要打 tag
$ pod trunk register 943175984@qq.com 'lir9205' --verbose  #注册 cocoapods账号
# 接收发送到邮箱的链接,点击进入后注册成功
$ pod trunk me #  查看注册的个人信息
$ pod trunk push WCHChat.podspec  # 将私有仓库推送到CocoaPods上
$ pod search PodName # 搜索库检查是否上传成功,
# 如未找到可执行  $ pod setup 将远程索引库克隆到本地,再进行 pod search

三、Git 的命令演示

一、命令行的演示

  1. 初始化一个代码仓库
$ git init
  1. 如果使用GIT,必须给GIT配置用户名和邮箱
    给当前的git仓库配置用户名和邮箱
$ git config user.name “Magic”
$ git config uer.email “Magic@163.com”

给git配置全局的用户名和邮箱

$ git config —global user.name “Magic”
$ git config —global uer.email “Magic@163.com”
  1. 初始化项目
$ touch main.m:创建了main.m
$ git add main.m:将main.m添加到暂缓区
$ git commit -m “初始化项目”:将在暂缓区的所有内容提交到本地版本库,清空暂缓区
$ git add .:将工作区所有不在暂缓区的内容添加到暂缓区

注意:添加的文件或者是修改的文件都要通过add命令将该文件添加到暂缓区。

  1. 查看文件状态
$ git status

红色:该文件被添加或者被修改,但是没有添加到git得暂缓区
绿色:该文件在暂缓区,但是没有提交到本地版本库

  1. 给命令行起别名
$ git config alias.st “status”
$ git config alias.ci “conmmit -m”
$ git config —global alias.st “status”
  1. 删除文件
$ git rm Perosn.m: 将Person.m删除
  1. 查看版本信息
$ git log -> 版本号是由sha1算法生成的40位哈希值
$ gut reflog:可以查看所有版本回退的操作
  1. 版本回退
$ git reset — hard HEAD: 回到当前的版本
$ git reset — hard HEAD^: 回到上一个版本
$ git reset — hard HEAD^: 回到上上一个版本
  1. 给git log起别名
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

二、共享版本库

git服务器的搭建非常繁琐(linux)
可以把代码托管到(Github/OSChina)
一个文件夹
一个U盘

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

推荐阅读更多精彩内容