版本控制— 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未发现此功能. 缺点 ...
随机推荐
- 在手机中预置联系人/Service Number
代码分为两部分: Part One 将预置的联系人插入到数据库中: Part Two 保证预置联系人仅仅读,无法被编辑删除(在三个地方屏蔽对预置联系人进行编辑处理:联系人详情界面.联系人多选界面.新建 ...
- 2. Spring Boot Controller
转自:https://blog.csdn.net/catoop/article/details/50501676
- ORACLE11g R2【单实例 FS→单实例FS】
ORACLE11g R2[单实例 FS→单实例FS] 本演示案例所用环境: primary standby OS Hostname pry std OS Version RHEL6.5 RHEL6 ...
- django 简单会议室预约(2)
--我们先打开settings.py 配置文件: import os #指明django APP目录路径 BASE_DIR = os.path.dirname(os.path.dirname(os.p ...
- 如何将String类型转换成任意基本类型
[原创][C#] 如何将String类型转换成任意基本类型 Posted on 2009-12-02 09:47 YCOE 阅读( 2843) 评论( 14) 编辑 收藏 前几天,在写一个自动 ...
- NAACL 2013 Paper Mining User Relations from Online Discussions using Sentiment Analysis and PMF
中文简单介绍:本文对怎样基于情感分析和概率矩阵分解从网络论坛讨论中挖掘用户关系进行了深入研究. 论文出处:NAACL'13. 英文摘要: Advances in sentiment analysis ...
- 例说linux内核与应用数据通信(一):加入一个系统调用
[版权声明:尊重原创.转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途] 应用不能訪问内核的内存空间.为了应用和内核交互信息,内核提供一 ...
- 在react底下安装环境
1.在react底下安装环境 Image.png Image.png 2.新建一个文件夹 Image.png 3.配置入口文件redux:staticRoot+'/redux/app' Image.p ...
- java调用C++的过程
转自https://blog.csdn.net/yjhdxflqm/article/details/50503551 jni是java和C.C++通信的桥梁. java适合写上层的应用,C.C++适合 ...
- zabbix自定义监控mysql
创建用户: use mysql; grant all privileges on *.* to 'zabbix'@'%' identified by 'zabbixpasswd'; grant all ...