diff --git a/sources/果壳中的Git.md b/sources/果壳中的Git.md index 787ab7b..0d87081 100644 --- a/sources/果壳中的Git.md +++ b/sources/果壳中的Git.md @@ -2,11 +2,11 @@ > ✍️ [houkensjtu](https://github.com/houkensjtu) | [Zhongyi Tong](https://github.com/geeeeeeeeek) > -> ©️ 本文演绎自 Atlassian 编写的 [_What is Git_](https://www.atlassian.com/git/tutorials/what-is-git)。除非另行注明,页面上所有内容采用知识共享-署名([CC BY 2.5 AU](http://creativecommons.org/licenses/by/2.5/au/deed.zh))许可协议。 +> ©️ 本文演绎自 Atlassian 编写的 [_What is Git_](https://www.atlassian.com/git/tutorials/what-is-git)。页面上所有内容采用知识共享-署名([CC BY 2.5 AU](http://creativecommons.org/licenses/by/2.5/au/deed.zh))许可协议。 -到目前为止,Git 是世界上使用最为广泛的现代化版本控制系统。Git 最初由 Linux 系统内核的作者 Linus Torvalds 在 2005 年开始开发,目前是一个持续维护的成熟开源项目。如今,大量软件项目依赖 Git 进行版本管理,其中既有开源软件,也有商业软件。Git 在很多操作系统和集成开发环境(IDE)上都表现良好。绝大多数软件开发者或多或少都使用过 Git。 +到目前为止,Git 是世界上使用最为广泛的现代化版本控制系统。Git 最初由 Linux 系统内核的作者 Linus Torvalds 在 2005 年开始开发,目前已经是一个持续维护的成熟开源项目。如今,大量软件项目依赖 Git 进行版本管理,其中既有开源软件,也有商业软件。Git 在很多操作系统和集成开发环境(IDE)上都表现良好。绝大多数软件开发者或多或少都使用过 Git。 -Git 是分布式版本管理( DVCS)的一种。CVS 和 Subversion(SVN) 等集中式的版本管理软件将完整的版本历史存放在同一个地方。而在 Git 中,每个开发者的代码仓库都包含了所有变更历史。 +Git 是分布式版本管理(DVCS)的一种。CVS 和 Subversion(SVN) 等集中式的版本管理软件将完整的版本历史存放在同一个地方。而在 Git 中,每个开发者的代码仓库都包含了所有变更历史。 除了分布式之外,Git 在设计之初也考虑了性能、安全性和灵活性。 @@ -18,7 +18,7 @@ Git 的底层性能相较于其他版本管理软件有强大的优势。提交 分布式架构也给 Git 带来了巨大的性能优势。 -比如说,有一名开发成员 Alice 修改了代码,添加了一些准备在 2.0 版本中发布的功能,然后提交了这些修改及其描述。随后,她又编写并提交了另一个新功能。很自然地,这两次修改是版本历史中两份独立的工作。Alice 又切换到了 1.3 版本的分支,修复了一个只影响这个旧版本的 bug。这次修复的目的是为了让团队在 2.0 版本还没有完成之前,发布一个 1.3.1 版本来解决旧版本中的一些 bug。Alice 可以立刻回到 2.0 版本分支,继续 2.0 版本的新功能开发。这一切都不需要网络连接,非常快速可靠,甚至可以在飞机中完成。当她准备好将这些单独提交的更改发送到远程仓库时,她只需要一个“推送”(push)命令。 +比如说,有一名开发成员 Alice 修改了代码,添加了一些准备在 2.0 版本中发布的功能,然后提交了这些修改及其描述。随后,她又编写并提交了另一个新功能。很自然地,这两次修改是版本历史中两份独立的工作。Alice 又切换到了 1.3 版本的分支,修复了一个只影响这个旧版本的 bug。这次修复的目的是为了让团队在 2.0 版本还没有完成之前,发布一个 1.3.1 版本来解决旧版本中的一些 bug。Alice 可以立刻回到 2.0 版本分支,继续新功能开发。这一切都不需要网络连接,非常快速可靠,甚至可以在飞机中完成。当她准备好将这些单独提交的更改发送到远程仓库时,她只需要一个“推送”(push)命令。 ### 安全 @@ -42,11 +42,11 @@ Git 对于绝大多数软件开发团队来说都是最好的选择。虽然每 Git 兼具大多数团队和个人开发者需要的功能、性能,安全性和灵活性。我们已经具体讨论过了这些特点。对很多团队来说,它们发现 Git 在这几点上都表现的更优秀。 -#### Git 已经成为了默认的行业标准 +#### Git 已经成为了事实上的行业标准 Git 使用最广泛的版本管理软件。这使得 Git 在以下这些方面具有极大的吸引力。在 Atlassian(作者所在的公司),大多数代码都是通过 Git 管理的。 -大量开发者都有过 Git 的使用经历,很大一部分大学毕业生甚至只用过 Git 进行版本管理。虽然迁移到 Git 的过程中要经历比较陡峭的学习曲线,但是大多数员工以及未来的员工都已经具备了使用 Git 的基本技能,这意味着他们不需要额外的培训。 +大量开发者都有过 Git 的使用经历,很大一部分大学毕业生甚至只用过 Git 进行版本管理。虽然迁移到 Git 的过程中或许会经历比较陡峭的学习曲线,但是大多数员工以及未来的员工都已经具备了使用 Git 的基本技能,这意味着他们不需要额外的培训。 除了拥有大量使用者之外,Git 的普及还意味着很多第三方的服务和 IDE 都已经集成了 Git。比如我们的 DVCS 桌面客户端 [Source Tree](https://www.atlassian.com/software/sourcetree)、项目开发管理软件 [JIRA](https://www.atlassian.com/software/jira) 和代码托管服务 [Bitbucket](https://www.atlassian.com/software/bitbucket)。 @@ -54,19 +54,19 @@ Git 使用最广泛的版本管理软件。这使得 Git 在以下这些方面 #### Git 是一个高质量的开源项目 -Git 本身是一个经历多年良好支持和管理的开源软件项目。Git 的维护者很好地平衡了长远额用户需求,和改进可用性和功能性的例行更新。这个开源项目的质量久经考验,无数企业都极度依赖这个质量。 +Git 本身是一个经历多年良好支持和管理的开源软件项目。Git 的维护者很好地平衡了长远的用户需求,和改进可用性和功能性的例行更新。这个开源项目的质量久经考验,无数企业都极度依赖于此。 Git 还拥有良好的社区支持和庞大的用户群体。你可以找到各种深入浅出的学习资料,包括书籍,教程,以及专题网站。你也可以找到相关的播客节目和视频教程。 -开源降低了业余开发者的成本,因为他们不需要花一分钱来使用 Git。对于开源项目来说,Git 无疑是 SVN 和 CVS 等上一代成功的版本管理软件的接班人。 +开源降低了业余开发者的成本,因为他们不需要花一分钱来使用 Git。对于开源项目来说,Git 无疑是 SVN 和 CVS 等上一代流行版本管理软件的接班人。 -#### 对于 Git 的批评意见 +#### 对 Git 的批评 -对于 Git 的一个常见批评是它学起来不那么容易。Git 中的某些术语对于新手或者是使用其他系统的朋友可能会比较陌生。比如说,`revert` 这个命令在 Git、SVN、CVS 中具有不同的含义。不过,Git 依然向用户提供了非常强大的功能。学习掌握这些功能也许会花一些时间,但是一旦你学会了这些技能,它们会帮助你大大提高团队的开发效率。 +对于 Git 的一个常见批评是它学起来不那么容易。Git 中的某些术语对于新手或者是使用其他系统的朋友可能会比较陌生。比如说,`revert` 这个命令在 Git、SVN、CVS 中具有不同的含义。不过,Git 向用户提供了非常强大的功能。学习掌握这些功能也许会花一些时间,但是一旦你学会了这些技能,它们会帮助你大大提高团队的开发效率。 -对于曾经使用非分布式版本管理的团队来说,他们可能不想放弃中央服务器。不过,虽然 Git 被设计成分布式的架构,但是你依然可以建立一个“官方”的代码库来存放所有的修改。使用 Git 时,由于所有的开发者都拥有完整的代码库拷贝,所以他们的工作不会被中央服务器的状态和性能所影响。即使遇到故障,他们依然可以查看完整的项目历史。得益于 Git 的灵活性和分布式特点,你可以在保持原有工作方式的同时得到 Git 带来的额外好处,你以前甚至不会意识到这些好处。 +对于曾经使用非分布式版本管理的团队来说,他们可能不想放弃中央服务器。不过,虽然 Git 被设计成分布式的架构,你依然可以建立一个“官方”的代码库来存放所有的修改。使用 Git 时,由于所有的开发者都拥有完整的代码库拷贝,所以他们的工作不会被中央服务器的状态和性能所影响。即使遇到故障,他们依然可以查看完整的项目历史。得益于 Git 的灵活性和分布式特点,你可以在保持原有工作方式的同时还可以得到 Git 带来的额外好处,而你以前甚至不会意识到这些好处。 -现在你明白了什么是版本管理,什么是 Git 以及为什么要使用 Git ,你可以选择继续阅读下一节,了解 Git 在整个组织层面带来的好处。 +现在你已经明白了什么是版本管理,什么是 Git 以及为什么要使用 Git ,你可以选择继续阅读下一节,了解 Git 在整个组织层面带来的好处。 > 这篇文章是[**「Git Recipes」**](https://github.com/geeeeeeeeek/git-recipes/)的一部分,点击 [**目录**](https://github.com/geeeeeeeeek/git-recipes/wiki/) 查看所有章节。