每天总结一点,我相信对以后会有很大的好处.现在总结一下GIT在开发中常用的一些知识.
源代码管理器GIT使用简单,不会增加额外的工作量
git如果要用好,还是需要掌握一些命令行
1. 代码仓库(SVN需要安装一个服务器)
$ git init
.git文件夹是自动维护的,"一般"不用管
2. 使用前需要做一些简单的设置工作
告诉git你是谁(name),怎么找到你(email)
源代码管理工具,最重要的记录修改的痕迹,就要知道每一个修改都是谁做的
单元测试,集成测试,自动化测试,压力测试
有专门的服务器,可以来自动完成单元测试,以及其他测试!
# 设置用户名
$ git config user.name manager
# 设置电子邮件
$ git config user.email manager@163.com
以上两个设置,都是跟项目有关的,一旦将项目文件夹删除,设置就失效了.
以下两个设置可以一劳永逸
$ git config --global user.name "user name"
$ git config --global user.email username@163.com
------------------------------------------------------------
帮助信息
$ svn help 子命令
# 要退出帮助信息,按"q"
# 翻看下页,按"空格"
# 翻看上页,按"CTRL+B"
# 要搜索相关文字,按"/"然后输入"相关文字"
本地单人开发 "源代码管理 => 团队开发" 单人同样需要版本控制
=============================================
1. 创建文件
# 文件在工作目录中
2. 把文件添加到暂存区 (注意:有添加修改都需要使用add命令)
$ git add main.c
3. 查看状态
$ git statuts
4. 提交到代码仓库
$ git commit main.c -m "新建main.c"
提示: -m参数不要忘记加, 后面是来添加备注的,否则会进入vim
alias(别名)
$ git config alias.st status
$ git config alias.ci "commit -m"
# 查看修改日志
$ git log
在git中"版本号"是一个40位长的哈希(hash-散列)值, md5,sha1,sha256
在git使用中,如果要切换到不同的版本,只需要使用哈希值的"前7位"就可以
源代码管理器,功能就是"后悔" => 支持无限次后悔,做到任意版本之间的穿梭
# 返回到上一个版本状态
$ git reset --hard HEAD^
# 返回到任意指定版本号的文件
$ git reset --hard cb53229
# 查看所有的版本号
$ git reflog
# 回退到上次提交的状态
$ git reset --hard HEAD
# 可以将指定的文件恢复上一次提交的状态
$ git checkout Person.h
如果工作阶段性告一段落之后,一定记住提交,而且要写清楚"注释".
# 比较代码的变化
$ git diff
在团队开发中:
1. 公司需要有一个代码仓库
====================================
git不需要单独搭建服务器
git的服务器,可以是文件共享目录,云端dropbox,U盘,GitHub,OSChina...
# 专门用来做代码仓库,本身不用于开发,单纯的用来同步所有团队成员的代码(空的版本库)
$ git init --bare
2. 项目经理准备文件
1> 克隆 clone
从代码仓库复制所有的源代码到本地
$ git clone /Users/apple/Desktop/GIT演练/公司的代码库/weibo
2> 个人配置(上课时使用)
git config user.name manager
git config user.email manager.163.com
3> .gitignore
https://github.com/github/gitignore
放在项目的跟目录中!
===================================================
echo -e "# Xcode
#
build/
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
# Pods/" > .gitignore
===================================================
$ git add .
4> 使用Xcode创建项目
2. 新员工加入团队
1> 问经理git的地址,地址可以非常多种类
2> /Users/apple/Desktop/GIT演练/公司的代码库/weibo
# 进入终端,到自己的工作目录,从服务器下载完整的源代码
$ git clone /Users/apple/Desktop/GIT演练/公司的代码库/weibo
fetch first : 请先更新,服务器上有更新的版本.
在开发过程中,先更新(pull),再提交(commit[本地]+push[远程代码库])
3. 经理添加新的测试服务器给新员工熟悉
"svn trunk"
在git中,默认开发的远程服务器叫做"origin/master"
URL:
协议头://主机名/资源路径
如果出现中文或者特殊字符需要做百分号转义
1> 选择"Source Control" - "weibo" - "Config Weibo"
2> 选择remote
3> 点+,添加一个新的服务器
file:///Users/apple/Desktop/newdemo
4> 在新的服务器路径中新建空白的代码仓库
$ git init --bare
新人入职
1. clone
2. 删除.git目录,跟公司的服务器断开
3. git add .
4. git commit -m "新的开始"
5. 进Xcode进行各种演练,并且适当的时候,要提交并且添加注释!
不管公司使用的是svn还是git,都要记住在本地搞一个git非常有帮助!
Git tag
$ git tag -a v1.0 -m "1.0发布版本"
给本地代码库打一个标签
$ git push origin v1.0
将标签推送到了远程服务器
经理又在Xcode中辛勤的劳动,并且提交了"多次"版本
需求:要查看1.0当时的版本情况! 那个时候的架构设计,1.0版本有错误,需要修改!
解决步骤:
1> clone 完整的代码库到"新"的位置
$ git clone /Users/apple/Desktop/GIT演练/公司的代码库/weibo
2> 切换到打标签的位置
$ git checkout v1.0
3> 建立一个新的分支
$ git checkout -b new_branch_name
tag,当我们需要在某一个时间点,对版本做一个标记的时候,就可以打上一个标签
可以在需要的时候,迅速切换到当时的时间点的代码状态!
cocoapod 是用来管理第三方框架的工具!
pod search AFN
面试的时候,会问:你是如何学习第三方框架的!
1> 去第三方框架的github主页上浏览,文档
2> 下载到本地,按照官网上的代码,编写测试程序,体会该框架的好处和便利
AFN :
- 对 NSURLConnection,NSURLSession 做了一个包装
- 等于 网络连接 + 出错处理 + 序列化和反序列化
3> 如果对框架感兴趣,或者口碑非常好,就可以Fork下来,自己进行深度研究!
4> 如果发现了其中bug,将修改提交个原作者,原作者确认后,可以合并到第三方框架中!
本人在AFN框架中第几个版本的第几个分之中的修改过一个bug,封装了一个工具类....
Fork 如果对某一个第三发框架感兴趣,可以Fork,会建立一个分支,到自己的github主页上
1> Fork
2> git clone 到本地
3> 连写,带改,带测试!
Fork 能够让全世界优秀的程序员共同来优化一个优秀的框架!
*** SSH Key 一旦设置,就可以和Xcode无缝连接
1. 用户-Settings - Generating SSH Keys
2.
# 回到用户的主目录
$ cd
# 创建.ssh目录
$ mkdir .ssh
# 进入~/.ssh
$ cd .ssh
# 使用ssh-keygen生成rsa的公钥和私钥
$ ssh-keygen -t rsa -C "XXX@gmail.com"
# 查看公钥的内容
$ cat id_rsa.pub
拷贝完整的的公钥内容
进入github网页,Add SSH Key(添加SSH Key)
在回到命令行
# 验证密钥
$ ssh -T git@github.com