版本控制之svn和git
2017-12-14 本文已影响0人
六月星空2011
- 没有版本控制会出现的问题:
- 备份多个版本,费空间,费时间
- 难于恢复至以前正确版本
- 容易引发BUG
- 解决代码冲突困难
- 代码管理混乱
- 难于追溯问题代码的修改人和修改时间
- 无法进行权限控制
- 项目版本发布困难 - 什么是版本控制:
版本控制(Revision control)是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。 - SVN简介:
Svn(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了 SVN。Subversion 项目的初衷是为了替换当年开源社区最为流行的版本控制软件CVS,在CVS的功能的基础上有很多的提升同时也能较好的解决CVS系统的一些不足。
3-1. SVN基本交互流程图
工作思路: SVN 工作的的基本思路:在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序。由仓库管理员统一管理这些源程序.这样,就好象只有一个人在 修改文件一样.避免了冲突.每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地。用户做的任何修改首先都是在本地进行,然后用 SVN 命令进行提交,由 SVN仓库管理员统一 修改.这样就可以做到跟踪文件变化,冲突控制等等。
3-2. SVN常用工具
1.TortoiseSvn. 免费开源客户端
3-3. Subversion建立仓库
1. 建立svn仓库
命令svnadmin create 仓库名称
2. 仓库目录说明
db目录:就是所有版本控制的数据存放文件。
hooks目录:脚本文件的目录。
locks目录:用放置hook来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端。
format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
conf目录:是这个仓库的配置文件(仓库的用户访问帐号、权限等)。
3. 注意事项
.svn这个隐藏目录记录着两项关键的信息: 工作文件的基准版本和一个本地副本最后更新的时间戳。千万不要手工修改或删除这个 .svn 隐藏目录和里面的文件!!! 否则将会导致你本地的工作拷贝 (静态视图)被破坏,无法再进行操作。
3-4. Subversion目录规范
创建三个顶级目录
/trunk 存放开发的“主线”
/branches 存放支线副本
/tags 存放标签副本 - git简介
Linus的第二个伟大作品。2005年由于BitKeeper软件公司对Linux社区停止了免费使用权。Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了。
4-1. git的特点:
-分布式,强调个体
-公共服务器压力和数据量都不会太大
-速度快、灵活
-任意两个开发者之间可以很容易的解决冲突
-离线工作
-每日工作备份
4-2 git基本交互流程
4-3 开源项目工作流程
4-4 git建立仓库
1.建立Git仓库
git init --bare 库名称
2.仓库目录说明
-hooks目录:脚本文件的目录。
-info目录:保存了不希望在 .gitignore 文件中管理的忽略模式的全局可执行文件
-logs目录:日志目录
-objects目录:存储所有数据内容
-refs目录:存储指向数据(分支)的提交对象的指针
-config文件包含了项目特有的配置选项
-description文件仅供 GitWeb 程序使用
-HEAD文件指向当前分支
4-5. git 常用工具及配置
1.git
2.TortoiseGit
3 配置:
a) git config –-global user.name ‘xx’
b) git config –-global user.email ‘xx’
c) ssh-keygen -t rsa -C 'yourmail' 生成ssh key
4-6. git常用命令 - SVN和GIT的主要区别
- svn:
1, 是集中式的version control
2, 每次存储的仅仅是变化(**存储变化 **).- git:
1, 是分布式的version control
2, 每次存储完整的文件, 没有变化, 用一个指针指向前一个文件.