本文共 5778 字,大约阅读时间需要 19 分钟。
GitHub是目前使用最广的分布式项目管理软件。下面是如何从零开始,将自己的项目放到GitHub上面,并能够像SVN那般update和commit。
1、到上建立自己的账号
2、按照的指引,创建第一个代码仓库
“Repository name”可以理解为项目名称。
※现在的Private权限是收费的,所以只能创建Public权限的仓库。
※Private权限,表示只有指定用户可以查看/下载/commit这些代码;而Public权限,则表示所有人都能够看到这些代码并进行下载,但只有你指定的用户才能够进行commit。
3、安装和配置git
[root@localhost ~]# git --versiongit version 2.5.4(Apple Git-61)接着就要 设置用户名和Email 了,Email最好和注册时候的一样。
$ git config --global user.name "Your Name Here"# Sets the default name for git to use when you commit$ git config --global user.email "your_email@example.com"# Sets the default email for git to use when you commit上面的内容都写在配置文件 ~/.gitconfig 里了 恭喜,到这里,基本Git和GitHub都配置好了!
mac已经带有git,查看版本
4、版本库初始化
如果是从头创建版本库,可以采用先克隆,建立提交数据,最后再通过推送完成GitHub版本库的初始化。
步骤如下
(1) 克隆版本库:
git clone https://github.com/skylinbaiyi/HelloWorld.gitCloning into 'HelloWorld'...remote: Counting objects: 3, done.remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0Unpacking objects: 100% (3/3), done.Checking connectivity... done.
克隆的方式,本地已经存在一个.git文件夹,就不需要执行 git init 了
(2) 修改文件README.md文件:
创建Repository时,如果选择创建README.md文件的话,github上已经存在该文件,如果没有,则手动创建
$ git add README# Stages your README file, adding it to the list of files to be committed
(3) 提交
git add .
这个git add确实够蛋疼的,commit的话当然是把本地修改的所有文件提交上去了,还非得一个一个的add,这是反人类啊
#会把当前路径下的所有文件,添加到待上传的文件列表中
$ git commit -m 'first commit'# Commits your files, adding the message "first commit"
(4) push
这里所有的更改都只是在本地的, Push之后才会提交到GitHub保存:
git remote add origin https://github.com/skylinbaiyi/HelloWorld.git
git push origin master
(5)给项目加入一个tag。以便pod能自动识别
git tag -a 0.0.1 -m "Tag release 0.0.1”git push —tags
trunk需要CocoaPods 0.33版本以上,用pod --version
命令查看版本,如果版本低,需要升级:
sudo gen install cocoapodspod setuppod setup后必须要注册后才能提交podspec文件,否则会出现下面的错误
更新完成后,下一步是注册trunk
pod trunk register test@163.com 'test' --description=' ' --verbose
有的地方提示,这一步需要自备梯子,否则就会出现注册失败的问题,经我这里测试,公司网络目前不需要翻墙
注册后CocoaPods会给你的邮箱发送验证链接,点击后就注册成功了,可以用pod trunk me
命令查看自己的注册信息:
上面的命令是我注册时使用的,你需要把邮箱和名字以及描述替换成你的,加上--verbose
可以输出详细debug信息,方便出错时查看。
- Name: Yang Xiaoyu
- Email: yulingtianxia@gmail.com
- Since: May 25th, 20:27
- Sessions:
- May 25th, 20:27 - September 30th, 22:41. IP: 23.228.209.171
Description: macbook pro
上面是我的注册信息,CocoaPods不通过密码来验证用户,而是通过一个session token。
首先你需要建立一个podspec文件,这是我的podspec文件:
Pod::Spec.new do |s| s.name = "YXYNumberAnimationLabel" s.version = "1.0.1" s.summary = "一个可以动起来的数字Label" s.description = <<-DESC 通过设置数字变化的插值来展现动画效果 DESC s.homepage = "https://github.com/yulingtianxia/YXYNumberAnimationLabel" s.license = 'MIT' s.author = { "YangXiaoyu" => "yulingtianxia@gmail.com" } s.social_media_url = "http://twitter.com/yulingtianxia" s.source = { :git => "https://github.com/yulingtianxia/YXYNumberAnimationLabel.git", :tag => s.version.to_s } s.platform = :ios, '6.0' s.requires_arc = true s.source_files = 'YXYNumberAnimationLabel/*' s.frameworks = 'Foundation', 'UIKit' #s.private_header_files = 'Classes/ios/private/*.h' #s.dependency 'FLKAutoLayout', '~> 0.1' end
在验证和上传你的podspec文件到trunk之前,需要将你的源码push到Github上,tag一个版本号并发布一个release版本,这样podspec文件中的s.source
的值才能是准确的:
git add -A git commit -m "Release 1.0.1." git tag '1.0.1' git push --tags git push origin master
这两条命令是为pod添加版本号并打上tag:
set the new version to 1.0.1set the new tag to 1.0.1
pod trunk push命令做了如下三个工作:
在你podspec文件下的路径运行pod trunk push YXYNumberAnimationLabel.podspec
命令,同样需要翻墙梯子自备,别忘了将YXYNumberAnimationLabel.podspec
替换成你的podspec文件名。
pod spec lint
命令来验证)如果部署成功,CocosPods会在Twitter上@你
就像文章最开始的架构图描述的那样,你在trunk中的操作依然会在仓库中更新。以后再做更改时只需要更新版本号然后通过trunk来提交,不用向pull request并等待审核和merge了。
运行pod setup
来更新你的Pods依赖库tree后,再使用pod search YXYNumberAnimationLabel
命令来查找刚刚加入的名字叫YXYNumberAnimationLabel
的依赖库:
-> YXYNumberAnimationLabel (1.0.1) 一个可以动起来的数字Label pod 'YXYNumberAnimationLabel', '~> 1.0.1' - Homepage: https://github.com/yulingtianxia/YXYNumberAnimationLabel - Source: https://github.com/yulingtianxia/YXYNumberAnimationLabel.git - Versions: 1.0.1, 1.0.0 [master repo]
注意事项:
(1)验证spec文件的有效性:
pod spec lint文件名 验证resp上的文件
pod lib lint 文件名 这是只是验证本地文件
(2) 添加 --verbose 可以显示详细信息,便于查看问题
pod trunk push Bugrpt.podspec --verbose
参考地址: 1. podspec文件的格式参考广告文档: 2. :
3.
4.
提交结果查看地方 https://github.com/CocoaPods/Specs/tree/master/Specs
1、旧方法 http://blog.csdn.net/wzzvictory/article/details/20067595 2、新方法 http://yulingtianxia.com/blog/2014/05/26/publish-your-pods-on-cocoapods-with-trunk/ http://www.cnblogs.com/wengzilin/p/4742530.html 其他文章中提到,需要cocoaPods审核几天,才能有效,但我这里使用的实际情况是,只要pod trunk push成功,就马上有效了,在 CocoaPods/Specs中就可以看到了,CocoaPods也可以使用这个库了
里面有个log信息提示有个beta版本可以使用,这个千万不要下载,可能会有很多问题,还是老老实实使用最新的正式版本才靠谱
如果有多个github账号,在进行账号切换提交项目时,会出现没权限的问题
Unable to interpret the specified path as a podspec
原因是没有tag标记,代码push完全后,添加一个tag,这个tag需要和podspec文件的version字段对应
我们添加tag时,写的是1.0.2,需要加上字母“v”, v1.0.2