`
snoopy7713
  • 浏览: 1151965 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

为什么说 Git 将取代 SVN 做软件版本控制?

    博客分类:
  • Git
阅读更多

请允许我从一个“非编程人员”用户的角度先解释一下软件的版本控制:当若干开发人员组成的团队联合开发一个软件工程时,互相有不同的代码片段任务;他们需要将各自的成果集中起来,并方便随时修改及更新。有时修改后又觉得之前的代码可能更好,需要返回旧版本 —— 这就产生了版本控制 的需要。代码集中存放的地方叫“文件库”(repository)。每个程序员都可以随时提取(check out)文件库中的某个文件进行修改,并将修改结果提交(commit/check in)到文件库去。

用来实现这种管理的服务器端程序有多种,下图中就列出了一些版本控制软件。其中 Subversion 就是我们常说的 SVN,它替代了曾经流行的 CSV 而成为主流。但目前看来,Git 将取代 SVN 成为版本控制的最佳工具。

等等,这个话题跟 Joomla 有关系吗?当然有关。因为有些 Joomla 扩展 的作者已经开始使用 Git 来管理自己的代码库,如果用户需要下载最新的“开发版”,就必须了解 Git 的用法,通过 Git 来获取想要的文件。  

 

 

Git website homepage
Git website homepage


 

什么是 Git?

上图是 Git 官方网站 首页的部分截图,里面有英文原版的对 Git 的解释:

Git 是一款免费的、开源的、分布式的版本控制系统。旨在快速高效地处理无论规模大小的任何软件工程。

每一个 Git克隆 都是一个完整的文件库,含有全部历史记录和修订追踪能力,不依赖于网络连接或中心服务器。其最大特色就是“分支”及“合并”操作非常快速、简便。

 

如果你不能理解“分布式”,那么我们看一个简单例子:假如你把开发任务从公司带回家,晚饭后突然有了灵感,要对代码进行修改,不巧家里的电脑不能连接到公司的文件库,你怎么下载要修改的文件?即使你将文件用优盘带回去了,那么修改之后,又怎样提交?SVN 对这种情况没有解决方案,而 Git 可以!因为 Git 在每个用户硬盘上都创建了完整的文件库,不需要、也不存在一个“中心服务器”,你只要能连接上任何一个团队成员的电脑,就能将代码提交到文件库去(有点像 P2P)。

顺便说一下,Git 是由“Linux之父”  Linus Torvalds 创建的。因为他发现找不到满意的方案来管理 Linux Kernel 联合开发的版本控制,就自己写了 Git。

Git 有什么优势?

从网上的用户评价来看,Git 最大的优势就是“快”!对于大型的联合开发项目,用 SVN 进行版本控制管理时速度很慢,但是用 Git 就快很多。

还有一个说法是:SVN 有的功能 Git 都有,而 Git 的某些特色 SVN 根本做不到。

这就足够打动我了。我不是开发人员,无需关心更细节的比较了。如果你有兴趣深入了解,请 Google 之。

Git 如何使用?

Git 本来是面向 Linux 操作系统开发的软件。在 Linux 平台上使用 Git 非常简单,当然都是命令行模式。具体操作指令参看:Git 中文教程

如果你想在服务器上安装 Git,请看 Git 服务器安装 教程。

对于 Windows 操作系统用户来说,借助于 Cygwin 也能运行 Git 的命令行模式。

不过,Windows 的用户当然更喜欢图形界面。因此也就有了:

 

Windows 平台的 Git 图形界面客户端

目前至少有三款可运行在 Microsoft Windows PC 上的 Git 客户端:Git Extensionsmsysgit 以及 TortoiseGit

msysgit 的优势是带了一个命令行界面(Git Bash),其启动命令也是整合到 Windows 资源管理器的右键菜单上了,如果你对 Git 的命令行模式情有独钟,那么建议你安装 msysgit,在 Win 平台上继续享用 Git 命令行工作模式。

 

Git Bash of msysgit
Git Bash of msysgit

 

安装了 msysgit 之后,在 Windows “我的电脑”中任意一个文件夹上面点击鼠标右键,选择“Git Bash Here”就能弹出上图所示的 Git 命令行窗口。这个启动过程可能需要十几秒钟,请耐心等待。最后看到绿色的 $ 就是命令行提示符。输入 git help git 这个命令并回车,就会在浏览器中打开 msysgit 自带的帮助文档 HTML 页面;要离开命令行时,在 $ 提示符下输入 exit 就退出了。

我亲自用过上述三个中的后两个。感觉 TortoiseGit 是最好用的。是不是觉得 TortoiseGit 这个名字有点熟?它就是 TortoiseSVN 客户端的开发团队制作的。因此用过 TortoiseSVN 的用户能够很快熟悉 TortoiseGit 的用法 —— 实际上,有些人惧怕 Git 而抱着 SVN 不放,就是因为 TortoiseSVN 用起来太方便了。现在有了同样方便的 TortoiseGit,你还怕什么呢?

TortoiseGit 的安装

在安装 TortoiseGit 之前,你的 Windows PC 上仍然必须先安装 msysgit。因为此程序提供了 Git 核心。而且安装顺序是:先安装 msysgit,然后安装 TortoiseGit 。如果你弄反了,就必须进入 TortoiseGit 的设置界面(右键菜单上 TortoiseGit -> Settings -> General -> MSysGit -> Path),手动指定 Git 核心文件的位置(例如 c:\Program Files\Git\bin)。

TortoiseGit 下载之后是一个可执行的 .msi 格式安装包,直接双击就能安装到 Windows 上,与资源管理器无缝整合。在任何文件夹上点击右键就能看到它的菜单。它有 64-bit 和 32-bit 两种版本,请根据你的 Windows 操作系统来选择合适的安装包。安装完毕需要重新启动电脑。由于目前还没有中文语言包,因此现在使用 TortoiseGit 的话还是英文界面。

TortoiseGit 可以支持 SSH 加密方式的“上传”,早期版本是借助另一款专门实现 SSH 传输的开源软件 Putty 来实现,用户必须另外安装 Putty,然后在 TortoiseGit 的设定选项中给出 Putty 的可执行文件位置(例如 C:\Program Files\Putty\plink.exe)。现在最新的 TortoiseGit 已经自带了 TortoisePlink.exe(在右键菜单中 TortoiseGit -> Settings -> Network -> SSH -> SSH client)。

TortoisePlink.exe 实际上是 Putty 的 Plink.exe 文件的一个衍生产品,功能上比 Putty 可能要差一些。如果你喜欢 SSH 方式,那么还是建议你安装 Putty —— 没准你的电脑上早就安装了。

提示:通过 SSH 方式访问远程服务器还需要认证密钥(Putty Key)文件,每一个服务器都不一样。请参看 Putty 的相关文档 ,本文不再赘述。

不过别担心,我们只想通过 TortoiseGit 来下载软件最新版本,就不需要搞清楚这个 Key 是什么,怎么用,一样能达到目标。

请点击“下一页”来看看我使用 TortoiseGit 的实战演示 ——

 

 

 下载 TortoiseGit for Windows 32-bit Git版本控制系统客户端软件 v0.7.2.0 英文原版
文件标题: TortoiseGit for Windows 32-bit Git版本控制系统客户端软件 v0.7.2.0 英文原版 (详情)
文件类型: .msi
版本: 0.7.2.0
文件大小: 18.57 MB
下载次数: 3166

{mospagebreak_scroll title=TortoiseGit 客户端实战演示&heading=Git 版本控制系统介绍}

用 TortoiseGit 下载远程文件演示

我们以 Joomla! 1.5 平台上的 SJSB 桥接器组件 为例,来演示一下通过 Git 下载 SJSB 最新版本的过程。

在 SJSB 官方网站提供了一个 SVN 下载地址:

svn checkout http://sjsb.googlecode.com/svn/trunk/

有意思的是,你通过 TortoiseSVN for Windows 客户端访问该地址后,只下载到一个 README 文本文件,其内容是:

 

Please use git to get latest version from:

git://src.develer.com/users/woody/sjsb/.git
 

 

也就是说,实际上 SJSB 作者已经将原来 SVN 中的代码全部迁移到 Git 文件库去了。上面 git:// 开头的地址就是 Git 的访问地址。

 

在你的硬盘上某个位置创建一个新目录,例如命名为 sjsb Git,然后在上面点击鼠标右键,在弹出菜单上选择“Git Clone...”,如下图所示:

get Git Clone

 

接下来就会弹出一个对话框,要你填写该 Git Clone 对应的地址。我们输入 SJSB 作者给出的地址即可:

 

Git Clone URL
Git Clone URL

 

 

是不是觉得这个对话框很熟悉?酷似 TortoiseSVN 的“检出”对话框。在 URL 一栏填写目标网址,去掉 Load Putty Key 的勾选,然后点击“OK”按钮,就开始了传输远程文件的画面:

 

TortoiseGit Clone receiving
TortoiseGit Clone receiving

 

画面上那个小乌龟怎么是反着的?呵呵,这个画面上的小乌龟一直在翻跟头,从远程图标翻到本地文件夹图标,代表文件不断在传输。我们截图的时候刚好是翻过身去了。进度条下面的方框中显示了 Git Clone 的来源网址及本地存储位置,也显示了文件总数、已收到文件数量、传输速度等参数。

传输完成后,点击 OK 按钮,就结束了对文件库的下载。

下面,我们要将得到的文件导出为可用的 SJSB 安装包。这个过程与 TortoiseSVN 的导出过程也几乎一样:

在 sjsb Git 这个目录上点击右键,这时弹出菜单的内容有了变化,因为这个文件夹已经内含 Git Clone,所以相应的增加了很多菜单项目:

 

Git Menu Export
Git Menu Export

 

在 Git 的右键菜单上选择 TortoiseGit -> Export 就弹出了下面的对话框:

 

Git Clone Export Dialog
Git Clone Export Dialog

 

在最上面的 Zip File 那里输入导出文件的文件名,注意不要忘记 .zip 扩展名,否则导出后的结果没有扩展名。该输入框右侧的按钮允许用户自定义一个输出位置。如果不指定,默认是存放在当前 Git Clone 的目录内,即 sjsb Git 这个文件夹里面。

下面的几项都不用去管,选择好文件名之后直接点击“OK”按钮,就开始了导出过程。最终在 sjsb Git 文件夹下生成了一个 zip 文件。打开该 zip 文件,可看到 SJSB 桥接器最新的版本:

 

Git Clone Export Result
Git Clone Export Result

 

可以看到,文件日期都是 2009年5月2日的,而 SJSB 官方网站上通过 web 界面下载的 1.0.14a 版本其文件日期是2009年3月16日的。进入 com_smf 目录后,在 XML 文件中可以看到版本号是 1.0.15a-dev2。很显然我们已经通过 Git 得到了作者尚未发布的“开发版”。

以上我们演示了 Git 的“下载”过程,如果你想“上传”呢?也很简单!在本地的 Git Clone 中修改了文件之后,可以在总目录上点击右键,选择 Git Commit -> "master"... 这一项即可(注意是一级菜单,不是次级)。

当你在 PC 上拥有了一个 Git克隆 之后,过一段时间肯定需要更新一下,从“主库”(master)中提取别人提交的新文件,并与你自己 PC 上的 Git Clone 合并。这些操作都可以在右键菜单上找到相应的命令。具体用法请仔细阅读 TortoiseGit 的帮助(右键菜单上 TortoiseGit -> Help)。

Joomla之门点评 Git

我曾经用过 Git 的命令行模式,那真是很痛苦的经历。有了 TortoiseGit,就没有任何理由再说 Git 不好了。既然 Git 已经拥有了 SVN 的全部功能并且还有更多独特的优势,我想 Git 取代 SVN 也是一种必然趋势。

或许你的开发团队正准备搭建自己的 SVN 服务器,那么我建议你不妨直接使用 Git 吧,很明显大家将来都会接受 Git 的。

假如你们已经在用 SVN 了,那么建议你参考一下 SVN+Git 鱼与熊掌兼得 这篇文章,可以同时使用 SVN 和 Git,这样也方便团队成员完成平稳过渡。

 下载 TortoiseGit for Windows 32-bit Git版本控制系统客户端软件 v0.7.2.0 英文原版
文件标题: TortoiseGit for Windows 32-bit Git版本控制系统客户端软件 v0.7.2.0 英文原版 (详情)
文件类型: .msi
版本: 0.7.2.0
文件大小: 18.57 MB
下载次数: 3166
分享到:
评论

相关推荐

    GIT安装文件取代SVN和CVS

    作为开源自由原教旨主义项目,Git 没有对版本库的浏览和修改做任何的权限限制。它只适用于 Linux / Unix 平台,没有 Windows 版本,目前也没有这样的开发计划。 本文将以 Git 官方文档 Tutorial, core-tutorial 和 ...

    SVN git github-版本控制服务器部署与实践

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

    git与svn的区别

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同...

    深入浅出SVN(SubVersion,版本控制系统) (pdf高清晰版)

    尽管Git等新一代版本控制系统逐渐兴起,Subversion依然因其易用性和稳定性,在许多组织和项目中占有重要地位。 综上所述,Subversion作为一款开源版本控制系统,其设计理念、特点及应用领域使其成为软件开发不可或...

    Git资料Git资料Git资料Git资料Git资料

    在软件开发中,版本控制能确保团队成员可以查看和恢复错误更改,同时追踪谁在何时做了哪些改动。 2. **Git 技术**:Git 提供了一套完善的命令行工具,用于管理项目历史、分支、合并等操作。Git 不仅是一个版本控制...

    Git零基础实战视频教程

    Git是一款分布式版本控制系统,它在软件开发中扮演着极为重要的角色。在当前IT行业中,无论是个人开发者还是大型企业团队,Git都成为了管理代码和协作开发的核心工具。接下来,我们将详细介绍Git的核心概念、特点、...

    GIT使用入门.pdf

    - **CVS (Concurrent Versions System)** 也是一种集中式版本控制系统,但已经被更先进的系统如SVN和Git取代。 - **Perforce** 和 **Bazaar** 同样是版本控制系统,各有特点,但本文主要关注Git。 #### 四、Git的...

    软件版本控制文档.zip

    3. **CVS**:较早的版本控制系统,现在已被Git和SVN取代。CVS也采用集中式管理,但它的一些特性,如不支持分支的原子性合并,已不再满足现代开发需求。 软件版本控制文档通常会包含以下内容: 1. **基本概念**:...

    完整详细图文版 代码管理工具SVN、CVS、CC、VSS、GIT详细使用说明书(最终版本)Eclipse相关(共94页).rar

    虽然现在已经被更现代的系统如SVN和Git取代,但仍有部分项目在使用。Eclipse中的CVS客户端插件使开发者能够方便地进行版本控制操作。 3. **ClearCase(CC)** ClearCase是IBM提供的一个高级版本控制系统,支持...

    配置管理工具-Git的使用

    - **Git简介**:Git是一个开源的分布式版本控制系统,最初由Linus Torvalds为Linux内核开发所设计。自2005年推出以来,Git已经成为世界上最流行的版本控制系统之一。 - **Git的设计目标**主要包括: - 数据完整性:...

    git 操作指导 git的常用命令

    自推出以来,Git 因其灵活性和速度,在开源和协作编程社区迅速取代了传统的版本控制系统如 SVN、CVS 和 Perforce。 **版本控制系统**是一种用于管理软件开发过程中文件和目录更改的系统。通过记录每次更改以及更改...

    最新的Git一站式操作指南

    Git的出现,迅速取代了旧有版本控制系统,成为了版本控制领域的标准工具。 版本控制是一种记录文件内容变化的技术,其核心功能是使开发者能够切换到文件的历史版本,通常用于个人项目的时间线管理,以及团队协作中...

    版本管理软件探究--SVN,CVS,VSS比较

    - **概述**:一款专为大规模软件开发项目设计的版本控制工具。 - **特点**:高性能,支持大型文件和海量数据。 - **应用场景**:适用于游戏开发、媒体制作等领域。 #### 7. 选择适合的技术方案 选择合适的版本...

    svn简介及安装

    - **CVS**:早期流行的版本控制系统,但已经逐渐被SVN取代。 - **SVN**:集中式版本控制,适用于大型项目和团队协作。 - **GIT**:分布式版本控制,支持离线操作,适用于敏捷开发。 #### 六、SVN的安装与配置 #####...

    project docment_tools VSS / CVS / SVN / ClearCase / Hudson / GIT

    标题中的"project docment_tools VSS / CVS / SVN / ClearCase / Hudson / GIT"涉及到的是软件版本控制系统(Version Control System)的多个知名工具。这些工具在IT行业中扮演着至关重要的角色,它们帮助开发者管理...

    TortoiseSVN-1.14.6.29673-x64-svn-1.14.3

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

    git英文应用指南

    Git是一个分布式版本控制系统,其特点包括开源、高效和分布式管理代码的方式,而CVS(Concurrent Version System)和SVN(Subversion)则属于集中式版本控制系统。集中式系统的代码集中存放在一个中央服务器中,...

    SVN,资源和SourceCode管理,网上下载的都不全,值得保存

    总的来说,SVN作为一款强大的版本控制系统,为软件开发团队提供了一套完整的协作和代码管理方案,确保项目的高效、稳定和可追溯性。通过熟练掌握SVN的使用,开发者可以更好地管理源代码,提高工作效率。

    Git教程--欢迎下载

    传统的版本控制系统如CVS和SVN是集中式的,所有的版本信息存储在一个中央服务器上,而Git则采用分布式模式,每个开发者的本地都包含所有历史版本信息,可以独立进行提交和合并操作。 Git 的诞生源于Linux的开发需求...

Global site tag (gtag.js) - Google Analytics