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

来源:互联网 发布:某酒店2000w数据bak 编辑:程序博客网 时间:2024/05/12 08:04
 

请允许我从一个“非编程人员”用户的角度先解释一下软件的版本控制:当若干开发人员组成的团队联合开发一个软件工程时,互相有不同的代码片段任务;他们需要将各自的成果集中起来,并方便随时修改及更新。有时修改后又觉得之前的代码可能更好,需要返回旧版本 —— 这就产生了版本控制的需要。代码集中存放的地方叫“文件库”(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 Extensions,msysgit 以及 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下载次数:2197

{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