版本控制—— SVN & GIT
提问
什么是版本控制?
是能够一直监视代码文件的变更,并存储这些文件以便将来引用的一种机制(软件)
为什么要使用版本控制?
不使用版本控制还会出现什么问题?
不使用版本控制可能出现的问题
版本控制(Revision Control)
是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统
现在就开始使用版本控制
如果是开发团队中的一员,使用版本控制是强制性的!
如果是单人开发,也强烈建议现在就开始使用版本控制
使用版本控制可以:
版本控制工具
SVN
SVN基本交互流程图
SVN服务器安装
VisualSVN-Server
到公司,管理员建立用户名&密码,然后告知svn的地址
http: 80
https: 443
Subversion目录规范
SVN客户端软件
有了Xcode,为什么还要使用客户端软件?
SVN复习
服务器:代码仓库
协议头:
http: 80 不勾选
https: 443 勾选安全
服务器上选中服务器,点击右键,选择”properties(属性)”network(网络)
客户端:Versions
1. Repository Bookmark书签,代码仓库的标签
2. SVN的一个代码仓库中可以放多个项目
3. 用客户端最大的目的就是辅助检查是否有遗漏的情况
大部分工作在Xcode中都可以完成
Xcode工作:先更新,再提交!
Xcode中,最好不要多人同时修改一个Storyboard!
注意!!!
.svn这个隐藏目录记录着两项关键的信息
注意:千万不要手工修改或删除这个 .svn隐藏目录和里面的文件! 否则将会导致本地的工作副本被破坏,无法再进行操作
SVN与Xcode集成演练
关于分支的细节:
使用SVN我们应该
提示
GIT
GIT简介
GIT是一款*和开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目
是Linus(李纳斯)的第二个伟大作品,2005年由于BitKeeper软件公司对Linux社区停止了免费使用权。Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了
几乎所有优秀的iOS第三方框架都使用GIT
目前移动开发领域,越来越多的公司开始转向GIT
Xcode中已经集成了最常用的GIT功能
SVN vs GIT
SVN
集中式
效率略差
国内使用的较为广泛
由较好的图形化客户端和服务器支持,学习和使用相对简单
项目分支管理简单
GIT
分布式
效率高
国际上已经普遍使用,移动互联网项目开始越来越多地转向GIT
Xcode集成的功能已经能够满足大部分日常需求,但还有少量命令需要在终端输入,学习曲线相对陡峭
项目分支可以无限细分,更适合大型项目的版本规划
选择GIT的理由
GIT工作模型
集中式协同模型
社交网络式协同模型
GIT基本交互流程图
GIT仓库初始化
仓库初始化
git init --bare shared.git
仓库文件目录
HEAD: 指向当前分支的一个提交
description: 项目的描述信息
config: 项目的配置信息
info/: 里面有一个exclude文件,指定本项目要忽略的文件
objects/: Git对象库(commit/tree/blob/tag)
refs/: 标识每个分支指向哪个提交
hooks/: 默认的hook脚本
GIT设置配置信息
命令
git config -l 查看配置信息
git config -e 编辑配置信息
默认修改.git/config文件
个人信省息初始化(不要随意修改)
git config user.name "user01"
git config user.email "user01@163.com"
提示:如果没有配置全局信息,每次克隆之后都必须配置用户名和邮件!
使用--global参数可以配置全局个人信息
忽略无需版本控制的文档
echo “*.txt” > .gitignore
GIT基本命令
工作区、暂存区和代码区
GIT命令行演练
Xcode演练
.gitignore中的内容
.DS_Store
*.xcworkspace
GIT经典协同模型
中心仓库:包含master和develop两个分支
分支分类
提示:
给分支打标签
git tag -a v1.0 -m 'Version 1.0'
打一个1.0的标签
git push origin v1.0
将标签推送到远程服务器
git tag
查看当前标签
git checkout v1.0
签出v1.0标签
git checkout -b v1.0hotfix
签出并创建v1.0hotfix分支
git branch
查看当前所在分支
安装GIT服务器
GIT代码仓库本质上是通过命令行来操作的
如果在局域网中配置GIT服务器,只要能够通过终端访问到服务器即可
在Windows上要安装GIT服务器,安装如下三个软件即可
注意:CopSSH的用户一定不能是windows的管理员!!!
在Mac上要安装GIT服务器,无需安装任何软件,只需要设置访问用户即可,远程用于通过授权的账户名和密码登录,即可使用GIT
提示:GIT服务器可以是互联网中的某台主机,也可以是局域网中的某台计算机的共享目录,还可以是U盘。总之:分布无所不在!
CopSSH
将Git\libexec\git-core下的git.exe
, git-receive-pack.exe, git-upload-archive.exe, git-upload-pack.exe拷贝到\ICW\bin下
将\Git\bin\libiconv-2.dll拷贝到ICW\bin下
CopSSH本质上就是允许其他计算机以SSH的方式访问计算机资源
SSH是目前较可靠的,专为远程登录会话和其他网络服务提供安全性的协议
使用GIT我们应该
提示
Q & A
如果你现在是开发团队中的一员,还是单人开发,都强烈建议现在就开始使用版本控制!