一、
我们可以把这几个东西分成三类来理解:版本控制系统 、GUI客户端 、代码托管平台/CI工具。这样它们的关系就很清晰了。
1. 核心:版本控制系统
这是最底层的技术,负责记录和管理代码的每一次变更。主要有两个流派:
-
Git(分布式): 目前最主流的版本控制系统。它的特点是每个人电脑上都有一个完整的代码仓库,可以在离线状态下提交、查看历史,联网后再推送到远程服务器。
-
SVN(集中式): 较早的版本控制系统。它的代码仓库集中存放在一台中央服务器上,想要提交、查看历史等大部分操作都必须联网。
简单来说,Git是现在的行业标准,SVN则是还在使用的老牌系统。
2. 工具:图形化客户端
Git和SVN原本都是命令行工具。为了让操作更直观、不用背命令,有人开发了图形界面软件来封装底层的命令行指令。
-
TortoiseGit: 专门为 Git 服务的图形客户端。
-
TortoiseSVN: 专门为 SVN 服务的图形客户端。
它们的关系: 就像是为底层系统(Git/SVN)套上了一个外壳,让你可以用鼠标点选来完成操作。
3. 平台:代码托管与持续集成
当多人协作时,需要一个公共的远程服务器来存放代码,这就是代码托管平台。一些平台还提供了自动化功能。
-
GitHub: 全球最大的Git代码托管平台,也是开源社区的中心。
-
GitLab: 也是一个Git仓库托管平台,特点是提供"一站式"服务,自带强大的CI/CD(持续集成/持续部署)功能。
-
Bitbucket: 主要面向企业用户,可以托管Git 和Mercurial (另一种版本控制)仓库,并且和Atlassian系列工具(如Jira、Bamboo)深度集成。
-
Bamboo: 它是一个持续集成和持续部署(CI/CD)服务器,本身不托管代码,而是从Git仓库(比如放在Bitbucket、GitHub或GitLab上的)拉取代码,然后自动完成构建、测试、部署等工作。
关系总结
为了方便理解,可以用几个场景串联一下:
-
开发者的电脑上: 开发者用 TortoiseGit 在本地操作底层的 Git 来管理代码。
-
代码托管: 为了团队协作,开发者会把本地 Git 仓库的代码推送到远程,比如 GitHub 或 GitLab 上。
-
自动化流程: 当代码推送到远程后,Bamboo (或者 GitLab CI)会自动检测到变化,然后从仓库拉取最新代码,执行自动化测试和部署。
所以,总结一下它们之间的对应关系就是:
-
TortoiseSVN 服务于 SVN。
-
TortoiseGit 服务于 Git。
-
Git 是 GitHub 、GitLab 、Bitbucket 等托管平台的核心。
-
Bamboo 是配合这些托管平台使用的自动化工具。
。