版本控制— 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未发现此功能. 缺点 ...
随机推荐
- VA对于开发QT是神器,VA自动补全QT
我怎么就忘了,VA也可以适用于VS下开发QT程序.其中QT的头文件自己增加,主要是: C:\Qt\4.8.6_2008\include 但还有一些特殊类不认识,所以还得继续增加: C:\Qt\4.8. ...
- ADO.net简单增删改查
嘿嘿,又到了总结了的时间,今天我们学习了ADO.net,什么是ADO.NET:ADO.NET就是一组类库,这组类库可以让我们通过程序的方式访问数据库,就像System.IO下的类操作文件一样, Sys ...
- 跨域请求发送不了cookie问题: AJAX跨域请求JS配置和服务器端配置
1.ajax是同步方式 $.ajax({ type: "post", url:url, async:false, data:datatosend, dataType:"j ...
- 6. MongoDB
https://www.mongodb.com/ https://pan.baidu.com/s/1mhPejwO#list/path=%2F 安装MongoDB# 安装MongoDB http:// ...
- ActiveX控件开发 C#
转自:http://hi.baidu.com/charlesx_kst/item/9c2f42e2920db3f42b09a4ff 前言: 这段时间因为工作的需要,研究了一下ActiveX控件.总结如 ...
- poj 3122
Pie Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10309 Accepted: 3651 Special Ju ...
- 标准模板库 STL 使用之 —— vector 使用 tricks
1. 从已有 vector(或数组)中复制 vector<int> a{....}; int an = a.size(); int half = an/2; vector<int&g ...
- Windows 64位下 python3.4.3 安装numpy scipy
Numpy: 1.在开始菜单搜索cmd打开 终端 2.在终端输入python -m pip install -U pip 3.到http://www.lfd.uci.edu/~gohlke/pytho ...
- 使用mingw制作dll文件
使用mingw制作dll文件 安装mingw 准备math.c文件 //math.c #include<stdio.h> int add(int a,int b){ return a+b; ...
- 【UVA】434-Matty's Blocks
一道非常easy想复杂的题,给出主视图和右视图,计算最少能用几个正方体组成相应的视图,以及最多还能加几块正方体. 求最多加入事实上就是求出最多的正方体数减去最少的,主要就是最少的不好求. 一開始各种模 ...