【华为云实战开发】4.如何使用TortoiseGit进行云端代码托管

时间:2024-02-23 14:01:50

1 文档目的

    本文档主要帮助习惯使用图形化工具提交代码的开发者,如何更好的应用TortoiseGit,以及更好的将TortoiseGit与DevCloud结合应用。

    对于版本管理系统的介绍和git bash的安装使用,请查阅《Git on Devcloud》。

2 前提条件

2.1 华为云账号

使用华为软件开发服务DevCloud,首先需要注册一个华为云账号:注册链接

2.2 TortoiseGit客户端

Git客户端有很多种类,TortoiseGit只是其中一种,开发者可以根据自己使用习惯进行选择,华为代码托管(CodeHub)是面向软件开发者提供的基于Git的在线代码托管服务,而对开发者使用的Git客户端是没有限制的。

2.2.1 TortoiseGit安装

TortoiseGit是一个开放的git版本控制系统的源客户端,支持Winxp/vista/Win7/Win10等,对于曾经使用过TortoiseSvn的用户,界面非常熟悉易上手。

TortoiseGit同样支持SSH和HTTPS两种模式代码。

本文下载安装版本为:

0.png

2.2.2 配置个人信息       

安装完成,在开始菜单打开TortoiseGit->Settings,在弹出终端页面按照下面操作进行个人配置。

1.png

2.2.3 本地生成SSH密钥       

使用Tortoisegit自带的PuTTYgen,生成一对SSH密钥,将公钥复制粘贴到云端,将PPK格式的私钥保存在本地。

     2.png      3.png

4.png   5.png

2.2.4 复用Git Bash SSH密钥

如果本地原来已经用Git Bash生成了一对SSH密钥(方法见《Git on Devcloud》),TortoiseGit不想重新生成,若想复用本地原有的SSH密钥,将本地的私钥id_rsa转换成ppk格式的就可以使用了。

6.png

   7.png   8.png

9.png   10.png

3 CodeHub操作

3.1 新建空仓库

在开发云代码服务中,点击上方“新建仓库”按钮

11.png

新仓库的详细配置如下:

12.png

新建成功

13.png

3.2 本地生成SSH密钥并粘贴公钥到云端

第一步:按照2.2.3或者2.2.4生成SSH密钥对

第二步:在开发云代码服务中,点击右上角的“设置SSH密钥”

14.png

 

第三步:继续点击右上角的“添加SSH密钥”

15.png

 

第四步:粘贴拷贝的公钥字符串,添加“标题”,点击“新建”就可以了。

16.png

3.3 从云端下载HTTPS密码到本地

第一步:在HTTPS密码管理页面点击“修改”按钮。

17.png

第二步:点击重置,下载包含了用户名/密码的txt文档,再将初始密码修改成便于记忆的新密码。

18.png

 

3.4 云端仓库功能一览

功能

                                                       描述

新建仓库

用户可以在项目中创建一个或多个代码仓库。

仓库克隆

用户可以使用克隆功能将代码下载到本地进行开发。

分支管理

用户开发过程中可以使用拉取分支功能进行不同特性和补丁的开发。

标签管理

产品开发或迭代过程可以使用标签记录版本迭代。

分支合并

在特性或补丁开发完成后可以使用分支合并功能将特性或补丁合入主干分支。

分支保护

仓库管理员可以使用分支保护功能控制分支的删除和代码提交。

提交代码

开发过程中通过提交方式将代码提交到仓库中。

拉取代码

通过拉取代码可以获取远端仓库的的最新代码。

推送代码

通过推送代码功能将本地库代码上传到远端仓库。

代码阅读

可以通过Web在线方式阅读代码。

在线修改

可以通过Web在线方式修改。

活动记录

仓库代码提交、成员变更等信息都可以通过活动记录查看,方便管理者审核或追溯代码。

仓库模板

提供有代表性的仓库模板,用户可以根据仓库模板创建代码仓库。

仓库成员管理

仓库管理员可以设置用户是否可以访问仓库并设置访问权限。

仓库关注

用户可以关注经常使用的仓库,仓库关注后会默认排在前面方面查看。

密钥管理

用户默认不感知,在创建代码检查任务或编译构建任务时会自动添加部署密钥,在代码检查或编译构建下载代码时根据部署密钥下载,部署密钥只能用于下载代码不能上传代码,保证安全性。

4 Git本地研发场景

上一节在DevCloud云端已经创建了一个只包含README文件的空仓库,然后架构师或者项目负责人需要把本地框架代码推送到这个空仓库,最后,其他开发人员将云端架构代码克隆到本地,进行增量应用开发。

*         Git代码传输支持SSH和HTTPS两种传输协议,本节基于SSH传输协议(密钥对配置详见3.2)进行的操作。如果想使用HTTPS方式,直接下载HTTPS密码(密码下载详见3.3),当克隆、推送代码时直接输入HTTPS用户名密码即可。注意:同一仓库SSH和HTTPS的地址不同。

4.1 推送架构代码

4.1.1 初始化本地仓库

打开本地架构代码,确保根目录名(DevCloud)与云端创建的代码仓库名一致,在根目录下右键选择“Git Create repository here…”,初始化一个空git仓库,执行该操作后,可以看到在D:/code/DevCloud/下多了一个.git文件夹。

19.png

4.1.2 关联云端代码仓库

    在本地D:/code/DevCloud/文件夹下右键选择TortoiseGit->Settings,按下图进行填写,将本地仓库关联到云端代码托管平台

20.png

#仓库地址“CodeHubUrl”按下图方法获取,例如:

21.png

4.1.3  推送本地代码到云端

Ø  在本地D:/code/DevCloud/文件夹下右键选择TortoiseGit->Add…,勾选需要添加到git版本管理库的代码

22.png

Ø  右键选择“Git commit->master…”

23.png

Ø  右键选择“TortoiseGit->pull…”

     24.png

Ø  右键选择“TortoiseGit->push…”

          25.png

4.2 克隆代码

开发人员在本地准备克隆云端架构代码。在准备把代码克隆到的目标文件夹下,右键选择“Git Clone…”

      26.png

4.3 代码提交

一次修改被成功提交到远端仓库会历经四个阶段,1本地工作区->2缓存区->3版本库->4远端版本库,如下图所示。

#TortoiseGit->Add…        //将新增、修改或者删除的文件增加到暂存区

# Git Commit->Master…     //将已暂存的文件提交到本地仓库

# TortoiseGit->push…       //将本地代码仓库修改推送到远端仓库

27.png

5 使用举例

    场景:分别在本地feature分支和master分支提交代码,然后想将feature分支的修改merge到master分支。可是由于两个分支上的提交修改了同一行代码,所以merge产生了冲突,需要手动解决。

说明:如果没有冲突,merge自动完成。

5.1 新建feature分支

28.png    29.png

5.2 在feature分支提交代码

30.png   31.png

5.3 切换到master分支

 32.png  33.png

5.4 在master分支提交代码

34.png  35.png

5.5 从feature分支向master分支合并

36.png     37.png

5.6 冲突提示

38.png

5.7 本地编辑手动解决冲突

39.png40.png

5.8 合并结果推送到开发云平台

41.png  42.png

 

华为云DevCloud,5人以下额度范围内,可以免费使用,并且可以预约免费的产品演示和技术交流,详情查看华为云官网