Android-版本控制Git和SVN

Android-版本控制Git和SVN
一 版本控制
版本控制是一种软件工程的技巧,确保在开发的过程中,由不同的人所编辑的相同的项目得到更新


二 版本控制的历史
版本控制的方式

本地版本控制

技术分享

集中版本控制(SVN)

技术分享

分布式版本控制(Git)

技术分享

版本控制的使用历史
1 VCS
2 VSS CVS(不支持并发和原子提交)
3 CLearCase ,SVN, perforce, TFS
4 Mercurial(水星) , Git


三 版本控制-SVN
1 SVN架构
单机结构, 本地文件系统, 网络结构, C/S结构, B/S结构
技术分享

2 SVN储存结构
SVN仓库(Repository):保存各个版本的软件资源,记录版本更新的历史,维护版本分支
本地工作目录(Working directory):开发的地方
技术分享

3 配置SVN
1 安装SVN Service
2 安装tortoisesvn

这里提供相应的工具链接:

http://pan.baidu.com/s/1eQ6ekOq

安装默认安装即可,比较简单


4 使用SVN的工作方式
1 从服务器更新最新的代码
2 开发自己的分支,每隔一个小时向服务器提交一次代码
3 最后,吧自己的分支合并到主分支上,并反映给服务器


5 常用的功能
导入import:向本地仓库导入文件,不含有.svn文件
导出export:从仓库中导出文件,不含有.svn文件
检出checkout:从仓库提取文件,含有.svn文件
检入checkin:把文件提取到仓库,在.svn下执行
修改edit:将文件checkout到本地,再修改
新增目录和文件add:在工作区.svn文件夹下新增了文件,在提交之前,先进行add
提交commit:add之后提交到仓库
更新update:从仓库更新现在所有的文件
删除delete:删除文件,删除后在提交可以彻底删除
清理clearup:清理状态等信息
锁定get lock:将文件锁定,同一时刻,值允许一个人访问
解除锁定release ulock:解除文件的锁定
备份:先从服务器export,然后打包备份即可
恢复删除revert:不小心删除了文件,用这个恢复
合并分支merge:将自己的分支与主分支合并
建立分支switch:重新建立一个分支,在这个分支里工作不会影响主分支的文件


四 版本控制-Git
1 历史
Git是由linux创始人linux torvalds开发的开源的版本管理系统,也成为源代码管理系统(SCM)


2 Git架构

Git文件的三个状态

技术分享

commited:文件储存在你的本地
modified:修改了文件,但是未提交到你仓库
staged:已经标记了一个已修改文件的下一个版本的快照

快照

技术分享

Git的每一个版本的修改,都会留下前一次的快照,以后若是要回到某个版本,直接区某个版本的快照即可
,Git也像是一个小型的文件系统,快照是的Git的速度比SVN快
 
3 Git的开发流程
1 克隆数据库到PC
2 创建自己的分支,修改代码
3 在PC上自己创建的分支上提交代码
4 合并自己的分支
5 新建一个分支,fetch最新的服务器代码,然后跟自己的主分支合并,
6 生成补丁patch,发给主开发者
技术分享

4 四个区域
1 bless (remote) repository 远程仓库:远程服务器
2 local repository 本地仓库:由分布式结构使得本地也有一个仓库,名字叫.git(隐藏文件)
3 stage area 临时工作区:例如添加了文件没有提交,则添加的文件就在临时工作区
4  work area 本地工作区:与.git文件夹相同的目录就是本地工作区


5 安装Git环境
1 git
2 tortoisegit
工具链接:
http://pan.baidu.com/s/1eQ6ekOq
6 git常用操作
git init 初始化当前目录为工作区
git remote [-v]获取远程仓库属性
git checkout --文件 检出文件
git diff 比较工作区文件的差异
git diff --cached 比较临时工作区的文件差异
git diff --staged  
git branch 得到当前分支
git fetch orginl 从远程提取文件放在一个新的文件夹
git pull orginl  从远程提取文件,不生成文件夹,仅仅更新
git whatchanged 查看改变
git log查看日志
git push orginl 分支(master) 从目前的分支推送到远程,需要权限
git push --progress origin master 从master分支推送到远程,需要权限
git status 查看状态
git add 添加
git commit 文件 -m 注释 提交
git clone URL 克隆版本库,用于下载源代码
echo "test.dll" > .gitinore 添加test.dll到忽略文件
git checkout chengzhi 改变工作分支
git merge 注释 HEAD 分支 与主分支合并或者 git checkout master     git pull .branch1


五 SVN和Git的区别
SVN                                   Git
C/S结构                            分布式
客户端只有工作区域           客户端有工作区和本地仓库
不方便离线操作                 可以一直离线
速度慢                              速度快
checkout                         clone,pull,fetch
svn的branch是建立新目录  Git branch不是
update                             checkout
commit                            push
delete                               rm                        
   

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。