常用版本控制工具

什么是版本控制?

可以把一个版本控制系统(缩写VCS)理解为一个“数据库”,在需要的时候,它可以帮你完整地保存一个项目的快照。当你需要查看一个之前的快照(称之为“版本”)时,版本控制系统可以显示出当前版本与上一个版本之间的所有改动的细节。

在团队开发中使用版本控制系统的好处

1.作为数据备份

这是一个主要的原因了。虽然数据备份同样可以用比较笨的方法:本地复制副本,但这种古老的方法有很多不足,无法应对频繁的修改,会照成版本混乱,不便于管理,并且占用空间。

2.版本管理

避免版本管理混乱。这是使用版本管理的最主要原因,也是版本管理的目的所在。你肯定不会希望在本地手动备份了多个副本后,到头来却不知道那个备份是最新的,那个备份进行了什么修改,修改日期是什么时候等等一切你记不清的问题。而版本管理软件能解决这些问题,它有详细的日志,能记住你的每一次提交、每一次改动,并且能够比较查看不同版本之间的异同,并且可以恢复到之前的任一版本。

3.提高代码质量

在没有版本管理之前,可能经常要在代码里写些不相关的注释,比如:某人某日对某代码进行修改;或是将一些不确定是否使用的代码用注释的形式保留等等,这些也就是僵尸代码啦。现在这些工作都可以交由版本管理工具完成,把这些不相关的僵尸代码从代码里删掉吧。

4.提高协同、多人开发时的效率。

及时提交更新代码,能让团队中的成员了解到代码的最新情况,避免重复劳动。

5.明确分工责任。

什么时候谁对代码做了修改、修改了什么内容,版本管理都会记录在案,方便查询,追究责任。

6.除了代码以外,很多文档、个人资料,如:简历等等都可以进行版本管理,这是有趣而高效的。凡是需要持续修改的文档资料都可以进行版本管理

下面来介绍下目前常见的版本控制工具

1.Git

Git是目前世界上最先进的分布式版本控制系统,使用Git和Gitlab搭建版本控制环境是现在互联网公司最流行的版本控制方式
简介:
Git是一个免费的开源分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有事务。
Git易于学习,占用内存小,具有闪电般快速的性能。
Github地址:https://github.com/git/git
官方网站:https://git-scm.com/
官方文档:https://git-scm.com/docs
中文文档:https://git-scm.com/book/zh/v2
下载地址:https://git-scm.com/downloads

2.SVN

简介:
TortoiseSVN是一款非常易于使用的跨平台的 版本控制/版本控制/源代码控制软件。它基于Apache Subversion(SVN)® ; TortoiseSVN为Subversion提供了一个简单易用的用户界面。
TortoiseSVN开源地址:https://osdn.net/projects/tortoisesvn/
Subversion的Github地址:https://github.com/apache/subversion
官方网站:https://tortoisesvn.net/
官方文档:https://tortoisesvn.net/docs/release/TortoiseSVN_en/index.html
中文文档:https://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/index.html
下载地址:https://tortoisesvn.net/downloads.html

3.HG

简介:
Mercurial是一个免费的分布式源代码管理工具。它可以有效地处理任何规模的项目,并提供简单直观的界面。Mercurial 是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。
官方网站:https://www.mercurial-scm.org/
官方文档:https://www.mercurial-scm.org/wiki/BeginnersGuides
下载地址:https://www.mercurial-scm.org/downloads

4.CVS

CVS是版本控制系统,是源配置管理(SCM)的重要组成部分。使用它,您可以记录源文件和文档的历史记录。老牌的版本控制系统,它是基于客户端/服务器的行为使得其可容纳多用户,构成网络也很方便。这一特性使得CVS成为位于不同地点的人同时处理数据文件(特别是程序的源代码)时的首选。
官方网站:http://www.nongnu.org/cvs/
官方文档:https://web.archive.org/web/20140629065005/http://ximbiot.com/cvs/manual/cvs-1.11.23/cvs.html
下载地址:https://ftp.gnu.org/non-gnu/cvs/

优势:

1.更轻松的管理。传统的版本控制系统使用集中式的 repository,一些和repository相关的管理就只能由管理员一个人进行。由于采用了分布式的模型,Mercurial 中就没有这样的困扰,每个用户管理自己的 repository,管理员只需协调同步这些repository
2.更健壮的系统。分布式系统比集中式的单服务器系统更健壮,单服务器系统一旦服务器出现问题整个系统就不能运行了,分布式系统通常不会因为一两个节点而受到影响。
3.对网络的依赖性更低。由于同步可以放在任意时刻进行,Mercurial 甚至可以离线进行管理,只需在有网络连接时同步。

版本控制工具的可视化客户端

1.Gitkraken

轻松使用托管在GitHubGitLabBitbucketAzure DevOps(VSTS)这些站点上的存储库。GitKraken都可克隆,添加分支,创建/打开拉取请求。
官网:https://www.gitkraken.com/

特点:

1.直观的UI
2.内置代码编辑器:初始化一个全新的项目并使用内置代码编辑器添加新文件和文件夹,并直接在GitKraken中编辑它们。保存文件,暂存和提交更改。没有更多上下文切换!
3.任务跟踪:将Glo Board连接到GitKraken中的存储库。当您在任务上取得进展时,可以快速更新代码的相关问题,然后重新开始编码。

image.png
2.Tower

官网:https://www.git-tower.com

Tower的优点

1.便于使用:无需记住复杂的命令(及其参数)。Tower使许多高级操作像拖放一样简单。
2.撤消一切的功能:包括撤消本地更改,恢复旧版本,还原提交,恢复已删除的提交,撤消分支删除
3.清晰的可视化,更好的理解:Tower的清晰视觉界面非常有用 - 并且使复杂场景更容易理解。
4.优雅地使用Git:以简单,直观的方式解决合并冲突,不需要SSH密钥,用户名,密码和身份验证令牌进行验证

image.png

3.Sourcetree

简介:适用于Windows和Mac的免费Git客户端
Sourcetree简化了与Git存储库交互的方式,通过Sourcetree的简单Git GUI可视化和管理存储库

官网:https://www.sourcetreeapp.com/

image.png

推荐阅读更多精彩内容