版本控制:svn、git

来源:互联网 发布:手机没有移动网络信号 编辑:程序博客网 时间:2024/05/21 22:47

1、什么是版本控制

通过文档控制(Document Control),来记录、跟踪我们项目的任何变动(创建、删除、修改、查询)。

SVN是Subversion的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

2、为什么使用版本控制

3、windows下SVN的安装

SVN服务器端安装:
VisualSVN是一款图形化svn服务器管理软件。
官网地址:http://www.visualsvn.com/server/
下载地址:http://www.visualsvn.com/server/download/

客户端安装:
TortoiseSVN是svn版本控制系统的一个免费开源客户端,它是svn版本控制的 Windows 扩展。可以使你避免使用枯燥而且不方便的命令行。它完全嵌入Windows Explorer,使用时只需在正常的窗口里点击右键操作就可以了。
下载安装地址
http://tortoisesvn.net/downloads

4、实战

主要掌握功能:
1.单用户版本控制
2.版本库的备份和还原
3.多用户权限控制
4.多用户版本控制
5.多用户冲突合并

6.SVN提交代码的规范

7.采用svn管理Android项目

8.常见ignore文件类型

9.项目版本管理实战

10.Eclipse集成svn


  SVN图标详解:




SVN标准目录结构:

trunk

       这是SVN目录的主分支,表示日常开发中的项目,任何时候trunk里包含的都是最新的开发代码。这里的代码将会工作到你的下一个主要发布版本。

branches

      Experimental branches

          有时你想将某个新技术引进项目。这很好,但是你当然不想赌上你的整个项目。

    Bugfix branches

          分支也可以用于处理trunk或release branches里发现的严重的Bug。

tags/v2.0

       一般情况下,tag,是用来做一个milestone的,不管是不是release,都是一个可用的版本。

       tags,一般是只读的。




1)单用户操作
1)仓库的创建
2)本地文件跟仓库的关联
3)增 提交新文件



2)多用户操作
* 版本控制
* 冲突解决
* 代码提交规范
* 锁操作 : 图片、视频、so、不可被编辑的文件。
锁只能锁住一个文件状态,如果该文件被修改了,锁自动就没了。
3)实战案例
* 代码的合并
** svn的标准目录结构

5、git

windows下Git的安装:
1.msysgit是Windows版的Git,提供了命令行操作 下载地址:http://msysgit.github.io/

Git-1.9.2-preview20140411.exehttp://pan.baidu.com/s/1mg3QxSW

2.TortoiseGiT 是Git版本控制系统的一个免费开源客户端,它是git版本控制的 Windows 扩展。可以使你避免使用枯燥而且不方便的命令行。它完全嵌入 WindowsExplorer,使用时只需在正常的窗口里点击右键操作就可以了。

下载地址:

http://download.tortoisegit.org/tgit/

https://code.google.com/p/tortoisegit/



* 使用Github,创建自己的仓库。

1.单用户本地Git仓库创建和使用

2.如何在GitHub上创建仓库

3.Git补丁patch的创建

4.Git分支fork

** 上传自己的开源项目

6、开源项目获取的方法

http://www.github.com  git

http://code.google.com  svn


7、SVN提交的原则

  • 文件提交时要求必须提交注释,注明相关修改信息,例如bug号、任务描述等。具体内容可采用约定或者设置的形式。
  • 你所提交的改变将体现给其他开发者,要明白提交的后果,提交之前要慎重。代码变动及时提交,避免丢失本地修改后无法恢复。
  • 在提交之前要编译代码并修正错误。要保证新增加的文件同时被提交,否则只在你本地能正常工作,导致其它人不能编译通过。
  • 提交之前要测试所改变的应用,测试改变后的效果是否达到预期的目的。
  • 多次检查提交的内容。提交之前应先做SVN更新或与资源库同步,注意到SVN关于冲突、错误的信息。资源库同步会告诉你将要提交的内容与资源库内容之间的差别,确认它们是不是你真正想要提交的。
  • 尊重其他开发者的代码,在重大变更之前与他们协商。SVN并不能替代开发者之间的交流。
  • 提前宣布修改计划。当你计划进行修改,需要影响到SVN里的许多文件时,先通过邮件或者当面通知其他开发者。例如,修改底层数据库模块时,有可能影响到业务逻辑层调用数据库模块的地方。这样其他开发者会有准备,也会对修改提出意见和建议。
  • 使用自动提交。SVN一次可以提交多个文件,所以,请一次提交所有相关的文件,即使它们不在目录下。这样可以确保代码在提交前后都是正确的。
  • 不要将格式修正和代码修正混合提交。修正代码格式包括增加缩进、减少空格等,如果把它们同代码修正一起提交,很难从日志或资源库同步信息里发现代码的修正。所以应该把修正问题与修正格式分开提交。每次提交尽量是一个最小粒度的修改。比如一个debug提交一次,一个小功能提交一次。
  • 每日进行开发工作之前更新代码。避免与昨天其他开发者的代码冲突。
  • 所有的代码文件编码格式应该是UTF-8的。包括的类型如java, jsp, xml, php, html等。
  • 提交的文件必须是开发者共用的程序文件,私人测试程序、程序缓存、图片缓存文件不要提交到SVN里。作为一个特例,eclipse的工程配置文件.project可以提交到SVN。一些常见的文件和目录可以加到SVN属性的忽略列表里,包括Thumbs.db、/build/、*.class、/classes/、/data/等等。
1 0