Git教程 · 与其他版本控制系统并行使用
在许多企业和组织中,会统一管理版本控制工具和相关的流程。其中的个人和小团队无法选择使用一个与众不同的版本控制工具,比如Git 。企业级别的迁移到Git 会需要可行性研究、战略决策、迁移细化等。需要很多时间。
无论如何,都可以在本地开发环境使用Git 技术,再同步开发结果到中央版本库。本地使用Git 有这些优势如下所示。
- 即使技术无法通信到中央版本库,也可以本地提交。
- 可以细粒度地划分版本,即使开发中的中间产品。版本管理成为开发过程中的安全保障。
- 可以专为产品原型和新功能开发工作一一分配对应的本地分支。
- Git 更好的支持合并和变基操作。
本章的工作流演示了一个本地 Git 版本库如何和远程中央版本控制服务器一起工作。以实现:
- 中央版本中的新变化可以被导入本地 Git版本库;
- 本地提交的修改可以被传输到中央版本库中。
如果目的是互通互联 Subversion 管理的中央版本库,那么 git-svn 命令就可,不需要本章所述的操作过程。
1️⃣ 概述
为了描述 Git 如何和一个中央版本控制一起工作,以CVS 版本控制系统为例。同样的操作步骤可以适用于解决与其他版本控制系统合作。
下图显示了一个CVS 服务器和一个开发者本地版本库。
开发者有两个本地 Git 版本库。 一个是用来同步中央版本,称为同步版本库。另一个称为工作版本库,用来真正执行开发工作。
同步版本库链接到中央版本库 (CVS 目录), 并包含Git 对象(在 .git
目录)。中央版本同步配置在.cvsignore
文件中,可以配置忽略 Git 光管对象。Git 配置通过 gitignore
文件,可以忽略 CVS 元数据信息。
首先,在中央版本中的修改会被记录到同步版本库 (cvs update
命令), 然后在 cvs 分支创建一次提交,再在从工作版本库取得同步版本库中的修改 (fetch
命令), 最后合并 (merge
命令)。
将本地主分支上的修改同步到中央版本的方法是。将开发版本库上的新提交转移到同步版本库 (push
命令)。在同步版本库,将主分支上与 cvs 分支合并,最后将修改保存至中央版本控制服务器 (cvs commit
命令)。
2️⃣ 使用要求
- 支持乐观锁:中央版本管理系统必须支持乐观锁,例如,文件可以被在不取得锁的情况下修改。
- 支持忽略文件和文件目录:中央版本管理比较可以排除部分文件和文件目录到管理范围之外。
- 项目目录的灵活性:开发工具(例如,创建编译工具)必须要不要求项目储存在文件系统固定的一个位置。
3️⃣ 执行过程及其实现
企业和组织可以使用中央版本控制系统,以此同时个人开发者可以在本地使用Git, 并将修改与中央版本控制之间同步。
需要先回答关于该中央本版控制服务的这些问题。
- 如何从版本控制器中获得初始代码?
-cvs checkout
命令 - 版本控制系统中元数据是如何在何处存储的?
-CVS
文件目录 - 如何在版本管理中忽略某些文件?
-.cvsignore
文件 - 如何在中央版本管理中得到最新的修改?
-cvs update
命令 - 如何在中央版本管理中增加新文件?
-cvs add
命令 - 如何将修改提交到中央版本中?
-cvs commit
3.1 初始部署版本库
接下来这些步骤演示了如何初始化创建同步版本库和工作版本库。开始时已有通过 cvs checkout
.命令来创建的本地 CVS项目(cvsproject)。
-
第1步:创建同步版本库
首先,在CVS 文件目录创建一个新的 Git 版本库。>