`
weimou66
  • 浏览: 1244767 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

相关推荐

    git版本控制介绍

    git版本控制介绍,现在git已经基本取代svn来做版本控制

    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就是用于多个人共同...

    Pro Git 中文版

    非常好的关于Git 的入门教程, 图文结合,非常适合初学者, 相信随着熟悉的人越来越多, Git 必将取代SVN 成为 你得心应手的必要的开发工具

    TortoiseSVN-1.14.6.29673-x64-svn-1.14.3

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

    分布式和集中式版本控制工具-svn,git,mercurial

    现象,近年来,我们对版本控制工具的关注点似乎正在改变.起初,我们主要也是唯一的目的就是对代码进行监控,使我们能够安全的返回到旧的版本,以便我们能够诊断代码中的问题.后来,我们的关注点更侧重于如何使人与人之间的...

    git英文应用指南

    git是分布式代码管理工具,越来越受到开发者的青睐,未来git必然会取代cvs类型的代码托管工具,如svn等

    ProGit 中英文版一起奉上

    git是一个快速,开源,分布式的版本控制系统。因此,它在(开源)和(协 作编程社区)很快取代了svn。pro git 是Scott Chacon编著的详细讲解git原理 及操作的著作,用于深入学习git非常有用。

    LsBook:无法忍受gitbook的生成速度,决定取代它!

    一切参照 ,只为加快网站的生成速度。 只支持 md 语法: 项目示例: 部署 部署 python,安装 lsbook pip install lsbook 使用 lsbook -b --log debug <book> 编辑 book.json { "author": "作者", "title": "书籍...

Global site tag (gtag.js) - Google Analytics