版本控制— SVN & git
版本控制—— 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
如果你现在是开发团队中的一员,还是单人开发,都强烈建议现在就开始使用版本控制!
版本控制— SVN & git的更多相关文章
- iOS开发——开发实战篇&版本控制SVN和Git使用详解
版本控制SVN和Git使用详解 公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的! -----------------svn--------- ...
- 版本控制比较cvs,svn,git
版本控制比较cvs,svn,git 几个重要概念: 版本库模型(Repository model):描述了多个源码版本库副本间的关系,有客户端/服务器和分布式两种模式.在客户端/服务器模式下,每一用户 ...
- SVN/GIT源代码泄露
造成SVN源代码漏洞的主要原因是管理员操作不规范.在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息.但一些网站管理员在发布代码时,不愿意使用‘导出’功能 ...
- Git版本控制:Git查阅、撤销文件修改和撤销文件追踪
http://blog.csdn.net/pipisorry/article/details/47867097 查看文件的修改历史 git log --pretty=oneline 文件名 # 显示修 ...
- 版本控制工具——Git常用操作(上)
本文由云+社区发表 作者:工程师小熊 摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点.现在准备开一个专题,专门来总结一下版本控制工具,让我们从git开 ...
- 痞子衡嵌入式:备受开源社区推崇的分布式版本控制工具(Git)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是分布式版本控制工具Git. 1.为什么需要版本控制系统? 单人软件项目开发过程,往往很多功能都是逐步增加的,在代码开发过程中,有的时候功 ...
- 版本控制工具Git工具快速入门-Linux篇
版本控制工具Git工具快速入门-Linux篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.版本管理系统的介绍 1>.版本管理系统的特点 1.1>.自动生成备份: ...
- 版本控制工具Git工具快速入门-Windows篇
版本控制工具Git工具快速入门-Windows篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近在学习Golang语言,之前的开发环境在linux上开发的,后来由于办公用的是w ...
- VSS SVN GIT SVN 加锁签出
VSS TFS SVN GIT VSS 两大功能: 1.签出后加锁,别人不能签出,独占签出. 2.在服务端可以查看哪些用户签出了哪些文件. 3.查看所有签出未签入的文件列表,SVN未发现此功能. 缺点 ...
随机推荐
- [bzoj1269]文本编辑器editor [bzoj1500]维修数列
1269: [AHOI2006]文本编辑器editor Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2540 Solved: 923 [Submit ...
- amazeui学习笔记一(开始使用4)--Web App 相关
amazeui学习笔记一(开始使用4)--Web App 相关 一.总结 1.桌面图标(Touch icon)解决方案:终极方案:link标签的rel和href属性: <link rel=&qu ...
- HDF文件的显示策略
作者:朱金灿 来源:http://blog.csdn.net/clever101 hdf格式(类似还有netcdf格式)格式是国际上通用的遥感数据格式.它们都是采用不规则存储的格式,就是在一个hdf文 ...
- nuxt配置sass
没有比这更简单的了 只需要安装 node-sass sass-loader 就可以了 npm i node-sass sass-loader -D 然后就可以直接使用了: <style lang ...
- 右键菜单添加带图标的Notepad++
给Notepad++ 加带图标右键菜单 方式一: 拷贝以下代码建立一个reg文件,替换相关路径,保存,双击运行加入注册表 Windows Registry Editor Version 5.00 [H ...
- 芯片TPS76030、TPS76032、TPS76033、TPS76038、TPS76050 电源芯片
下图是从网上摘出来的图片:TPS76033 它的作用就是改变电压: 输入电压:3.5V到16V 通过芯片的处理后 输出电压:3.3V 要学会看图,从中提取有用的信息 再看一个数据手 ...
- 安装配置Rancher管理docker
原文:安装配置Rancher管理docker 版权声明:本文为博主原创文章,转载请注明地址http://blog.csdn.net/tianyaleixiaowu. https://blog.csdn ...
- Maven基础教程 分类: C_OHTERS 2015-04-10 22:53 232人阅读 评论(0) 收藏
更多内容请参考官方文档:http://maven.apache.org/guides/index.html 官方文档很详细,基本上可以查找到一切相关的内容. 另外,快速入门可参考视频:孔浩的maven ...
- 15、NAND FLASH驱动程序框架
驱动可以参考At91_nand.c,这个比S3c2410.c (drivers\mtd\nand)简单多了 NAND FLASH是一个存储芯片那么: 这样的操作很合理"读地址A的数据,把数据 ...
- php 百度地图 腾讯地图 转换坐标
/* * 中国正常GCJ02坐标---->百度地图BD09坐标 * 腾讯地图用的也是GCJ02坐标 * @param double $lat 纬度 * @param double $lng 经度 ...