qtiger

 一、为什么使用代码管理工具?  

  • 能记录一个项目从开始到结束的整个过程。

  • 追踪项目中所有内容的变化情况,如增加了什么内容,删除了什么内容,修改了什么内容等等。

  • 版本控制,可以清楚的知道每个版本之间的异同点,如版本2.0相比较版本1.0多了什么内容,功能等。

  • 权限控制,防止代码混乱,提高安全性,防止一些不必要的损失和麻烦,简单的理解就是为什么职位做什么事情,不能越界。如控制程序员A对正在开发的项目具有开发的权限,其他项目不具有开发的权限,如果不进行控制的话,那么对其他项目的开发权限也对程序员A开放,如果程序员A对其他项目不小心进行了错误的操作 如删除,就会造成一些损失。

  • 责任追究,防止互相推卸责任,可以清楚的知道谁对哪个文件进行了什么修改,导致了项目无法正常运行。

  • 回退处理,执行了错误的操作之后还可以有补救的机会,如从版本1.0升级到版本2.0,后来发现版本2.0有一个错误,这时候可以进行回退处理,比较方便。

  • 冲突解决,在团队的多人协同开发中,冲突是经常有的事情,比如存在着相同的文件名称,同一个文件中有着相同功能的函数等等,这时候使用源代码管理工具可以比较方便的解决冲突。冲突的解决一般按照“复制-修改-合并”原则进行。

 

二、常见的源代码管理工具有哪些?  

1、常见的源代码管理工具有哪些

(1)CVS

  - 开启版本控制之门

  - 1990年诞生,“远古时代”的主流源代码管理工具 

(2)SVN

  - 全称是Subversion,集中式版本控制之王者

  - 是CVS的接班人,速度比CVS快,功能比CVS多且强大

  - 在国内软件企业中使用最为普遍(70%-90%)

(3)Git

  -是目前世界上最先进的分布式版本控制系统(没有之一)

(4)ClearCase

  - 收费的集中式版本控制工具,安装比Windows还大,运行比蜗牛还慢

  - 能用ClearCase的一般是世界500强,他们有个共同的特点是财大气粗

(5)VSS

  - 微软的集中式版本控制工具,集成在Visual Studio中

 

2、SVN或者Git进行源代码的管理基本区别  

(1)GIT是分布式的而SVN是集中式。   

1.1集中式:一台服务器控制着所有的代码,这台服务器的代码是最新的,其他电脑的代码操作(如下载、提交)都需要通过这台服务器才可以执行。

1.2分布式:每台电脑都相当于一个服务器,代码是最新的,比较灵活。

对比:Git的速度比SVN快;Git比SVN灵活;SVN一旦没有网络或者服务器挂了的话,其他电脑都无法执行操作,但是Git可以先提交到本地版本库,等待联网的时候再提交到远程代码仓库。

  

(2)GIT把内容按元数据方式存储,而SVN是按文件  

所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。如果你把.git目录的体积大小跟.svn比较,你会发现它们差距很大。因为.git目录是处于你的机器上的一个克隆版的版本库,
它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。

  

(3)GIT分支和SVN的分支不同

分支在SVN中一点不特别,就是版本库中的另外的一个目录。如果你想知道是否合并了一个分支,你需要手工运行像这样的命令svn propget svn:mergeinfo,来确认代码是否被合并。
然而,处理GIT的分支却是相当的简单和有趣。你可以从同一个工作目录下快速的在几个分支间切换。你很容易发现未被合并的分支,你能简单而快捷的合并这些文件。

 

3、常见的Git管理工具

(1)Git Base 

Git Base采用命令行的方式进行版本管理,功能操作最为灵活强大,下载地址http://git-scm.com/download/win

 

(2)EGit 

EGit是Eclipse的Git插件,在Eclipse中开发时直接操作EGit很方便,尤其对于有SVN开发情节的开发人员来说更加热衷于使用,但是EGit存在很多bug和不人性化的东西,需谨慎使用!

 

(3)TortoiseGit 

在Windows上面,图像化软件TortoiseGit相比GitHub客户端使用较为方便,下载地址:http://git-scm.com/download/win

  

(4)SourceTree  

在Mac Ios系统上,图形化软件SourceTree较为便捷(SourceTree当前不支持“开源中国--代码托管”,支持GitHub等),堪比EGit和Git Base的合体,机油图形化界面,又有命令行工具,下载地址:http://www.unlimax.com/sourcetree.html
SourceTree官网地址需要“FQ”才能访问,现提供SourceTree最新版本CSDN下载链接地址:http://download.csdn.net/detail/wenbitianxiafeng/8475481

  

4、SVN的管理工具

(1)TortoiseSvn

 

 

三、Windows系统Git的安装及使用

Windows系统Git的安装及使用

 

 

四、git、github、gitlab之间的关系

GIt-版本控制工具;GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub;GitLab 是一个用于仓库管理系统的开源项目

1、Git分布式版本控制系统

(1)Git是一款自由和开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,是版本控制工具 

(2)Github 是 一个托管平台,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等。GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。

(3)GitLab - 基于Git的项目管理软件,GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

三者都是基于git的,可以说是git的衍生品。

 

2、Github和GitLab的异同点

(1)相同点:二者都是基于web的Git仓库,在很大程度上GitLab是仿照GitHub来做的,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。

(2) 不同点:GitHub作为开源代码库及版本控制系统,拥有超过900万的开发者用户,目前仍然是最火的开源项目托管系统。GitHub同时提供公共仓库和私有仓库,但如果要使用私有仓库,是需要付费的。而GitLab解决了这个问题,你可以在上面创建私人的免费仓库。GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:允许免费设置仓库权限;允许用户选择分享一个project的部分代码;允许用户设置project的获取权限,进一步的提升安全性;可以设置获取到团队整体的改进进度;通过innersourcing让不在权限范围内的人访问不到该资源。从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候GitLab无疑是更好的选择。但对于开源项目而言,GitHub依然是代码托管的首选。

分类:

技术点:

相关文章: