首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Git 改变了分布式 Web 开发规则 -1

Git 改变了分布式 Web 开发规则 -1

版本控制系统(VCS)为应用和管理项目文件集的更改提供了一个机制,在面向团队的软件、文档和其他在线开发项目中广泛使用。对于开发项目,VCS 和系统备份一样关键,因为它们支持多个用户向同一个文件或项目提交更改,没有任何一个开发人员的更改会意外覆盖另一个开发人员的更改。       
常用缩写
  • CSS:级联样式表
  • GUI:图形用户界面
  • HTML:超文本标记语言
  • HTTP:超文本传输协议

即使 Linus Torvalds 没有开发 Linux® 操作系统内核,他也会因为创建了 Git VCS 而出名。像 Linux 这样的复杂项目是对 VCS 的终极系统测试,因此,Git 快速演化为稳定、强大、灵活的系统一点也不奇怪。       
Linux 和 UNIX® 系统使用了许多 VCS,从已经绝迹的 Revision Control System (RCS) 和 Concurrent Versions System (CVS) 到更现代的系统,如 Subversion、Mercurial、Bazaar、Arch 和 Darcs。具有讽刺意味的是(尤其在 Linux 领域中),Git 作为一个商业 VCS(BitKeeper)的替代产品开发,BitKeeper 具有独特、印象深刻的功能,并且是一个免费版本。BitKeeper 依然让人印象深刻,但是许可更改最后导致 Torvalds 开始寻找替代产品;在免费软件潮流下,他最后决定编写自己的软件。像 Linux 内核一样,Git 现在由许多开源开发人员贡献产品增强、bug 修复和其他内容。       
Git 的吸引力在于它强大的功能,也在于它的成本低廉 —— 免费软件,它很快被许多开源软件项目、研究所和组织所采纳。一旦 “进入” 公司或研究所之后,Git 既可以作为 VCS 又可以作为协作平台,这促使许多传统 “源代码” 之外的项目采用它。正如本文将介绍的,Git 在复杂、分布式 Web 开发项目中非常有用,这些项目对内容和开发都有很多要求,需要不同人员之间一直保持交互。       
Git:不仅仅是 VCSGit 可以促进不同位置(不同 Internet 连接级别)成千上万开发人员之间的分布式开发,没有明显的性能或访问瓶颈。Git 中支持这些基本要求的最重要的方面包括:               
  • 使用中央存储库,但为项目中的每一名开发人员提供完整的项目源代码副本。这可以保证所有开发人员都能完成他们的工作,无论他们当前的连接情况如何。
  • 支持快速、可靠地在软件项目中创建不同的工作集(称为分支),可以跨分支共享更改(称为合并)。分支可以轻松支持不同版本的软件包,无论这些版本是永久的还是实验性的。合并一般是源代码控制系统中的关键方面,在面向分支的 VCS 尤其常见。
  • 可以轻松在开发人员子集之间共享分支和代码更改,这些更改无需先签入中央存储库。
这些设计决策及其实现是 Git 成功和流行的关键所在。当然,Git 也满足标准的 VCS 要求,比如不变性和问责制。不变性 表示将更改提交到存储库之后,它们就成为项目历史记录不变的一部分。即使之后可以取消(称为还原),但这些更改和取消这些更改的替换代码也都成为项目历史不变的一部分。问责制 意味着可以轻松确定谁做了什么更改以及何时做了该更改。为什么做出更改仍然无法确定(尽管在提交更改时需要一些注释),但至少我们知道该去问谁。               
Git 使用内部索引跟踪文件的状态和存储库中的目录。它还存储能够反映这些文件和目录更改的对象,以简化后续更新。Git 索引和这些对象与本地存储库中的实际文件和目录不同 — 这个模型可以轻松确定本地更改,但尚未提交给本地存储库或远程中央存储库(如果有)的文件和目录。有些 Git 命令可以操作索引,另一些可以操作实际文件和目录内容,如果您用错了命令,可能会发现文件没有被更新。               
获取 Git大部分 Linux 发行版在其包存储库中提供 Git 包。在 Ubuntu、Debian 和使用 .deb 包格式的类似系统中,您需要安装 git-core 包。在基于 RPM 的系统上,比如 Fedora、Red Hat、Centos、SUSE 和 Mandriva,主 Git 包称为 git。基本的 Git 包需要使用 Perl、Perl 库进行加密和错误处理,系统上还将安装补丁实用工具。               
如果您的 Linux 系统需要最新最棒的 Git 版本,Git 网站还提供了预打包 .deb 和 RPM 包,以及最新 Git 源代码(如果需要构建自己的版本)的下载链接。Git 站点还提供了预编译版的 Git for Mac® OS X、本机 Windows®、Windows 系统上的 Cygwin、Sun/Oracle Solaris® 系统的下载链接。目前,IBM®                         AIX® 和 Hewlett-Packard® HP-UX 系统管理员必须通过它们平台的源代码构建 Git。有关获取和构建平台 Git 的信息,请参见 。               
主 Git 包包含 git 可执行文件和一些辅助 Git 应用程序。可以猜想,还有大量其他与 Git 相关的包可供使用。一些常用的 Git 相关包包括:               
  • git-cola:用于处理 Git 存储库中文件和目录的 GUI
  • git-doc:在本地安装 Git 用户手册、教程和文档
  • git-gui:浏览和处理 Git 存储库的 GUI;使用  gitk
  • git-web:基于 Web 的图形化 Git 存储库接口
  • gitk:一个浏览和处理 Git 存储库的简单 GUI
  • qgit:基于 Qt 的图形化应用程序,用户查看和浏览 Git 存储库
git-gui、git-web、gitkqgit 包提供类似的功能,git-web 是基于 Web 的,所有其他包都是在本地运行的。刚开始接触 Git 时,这些包都非常有用,而 git-web 包可能是分布式环境中的最佳选择。               
如果您对 Git 感兴趣,但是又已经使用了其他 VCS,那么以下包非常有用:               
  • git-cvs:该包提供 Git 与 CVS 存储库之间的交互操作,使您能将 CVS 存储库和更改历史导入 Git,在 Git 中进行处理,将更改重新合并到 CVS 存储库,并导入 CVS 存储库的更新。
  • git-svn:该包提供 Git 和 Subversion 存储库之间的交互操作,使您能将 Subversion 存储库和更改历史导入 Git,在 Git 中进行处理,将更改重新合并到 Subversion 存储库,并导入 Subversion 存储库的更新。
返回列表