1文档目的
本文档主要帮助习惯使用图形化工具提交代码的开发者,如何更好的应用TortoiseGit,以及更好的将TortoiseGit与Devcloud结合应用。
对于版本管理系统的介绍和git bash的安装使用,请查阅《Git on Devcloud》。
2前提条件
2.1华为云账号
使用华为云软件开发服务,首先需要注册一个华为云账号。
2.2TortoiseGit客户端
Git客户端有很多种类,TortoiseGit只是其中一种,开发者可以根据自己使用习惯进行选择,华为代码托管(CodeHub)是面向软件开发者提供的基于Git的在线代码托管服务,而对开发者使用的Git客户端是没有限制的。
2.2.1TortoiseGit安装
TortoiseGit是一个开放的git版本控制系统的源客户端,支持Winxp/vista/Win7/Win10等,对于曾经使用过TortoiseSvn的用户,界面非常熟悉易上手。
TortoiseGit同样支持SSH和HTTPS两种模式代码。
本文下载安装版本为:
2.2.2配置个人信息
安装完成,在开始菜单打开TortoiseGit->Settings,在弹出终端页面按照下面操作进行个人配置。
2.2.3本地生成SSH密钥
使用Tortoisegit自带的PuTTYgen,生成一对SSH密钥,将公钥复制粘贴到云端,将PPK格式的私钥保存在本地。
2.2.4复用Git Bash SSH密钥
如果本地原来已经用Git Bash生成了一对SSH密钥(方法见《Git on Devcloud》),TortoiseGit不想重新生成,若想复用本地原有的SSH密钥,将本地的私钥id_rsa转换成ppk格式的就可以使用了。
3CodeHub操作
3.1新建空仓库
在开发云代码服务中,点击上方“新建仓库”按钮
新仓库的详细配置如下:
新建成功
3.2本地生成SSH密钥并粘贴公钥到云端
第一步:按照2.2.3或者2.2.4生成SSH密钥对
第二步:在开发云代码服务中,点击右上角的“设置SSH密钥”
第三步:继续点击右上角的“添加SSH密钥”
第四步:粘贴拷贝的公钥字符串,添加“标题”,点击“新建”就可以了。
3.3从云端下载HTTPS密码到本地
第一步:在HTTPS密码管理页面点击“修改”按钮。
第二步:点击重置,下载包含了用户名/密码的txt文档,再将初始密码修改成便于记忆的新密码。
3.4云端仓库功能一览
4Git本地研发场景
上一节在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文件夹。
4.1.2关联云端代码仓库
在本地D:/code/DevCloud/文件夹下右键选择TortoiseGit->Settings,按下图进行填写,将本地仓库关联到云端代码托管平台
#仓库地址“CodeHubUrl”按下图方法获取,例如:
4.1.3推送本地代码到云端
Ø在本地D:/code/DevCloud/文件夹下右键选择TortoiseGit->Add…,勾选需要添加到git版本管理库的代码
Ø右键选择“Gitcommit->master…”
Ø右键选择“TortoiseGit->pull…”
Ø右键选择“TortoiseGit->push…”
4.2克隆代码
开发人员在本地准备克隆云端架构代码。在准备把代码克隆到的目标文件夹下,右键选择“GitClone…”
4.3代码提交
一次修改被成功提交到远端仓库会历经四个阶段,1本地工作区->2缓存区->3版本库->4远端版本库,如下图所示。
#TortoiseGit->Add… //将新增、修改或者删除的文件增加到暂存区
#Git Commit->Master… //将已暂存的文件提交到本地仓库
#TortoiseGit->push… //将本地代码仓库修改推送到远端仓库
5使用举例
场景:分别在本地feature分支和master分支提交代码,然后想将feature分支的修改merge到master分支。可是由于两个分支上的提交修改了同一行代码,所以merge产生了冲突,需要手动解决。
说明:如果没有冲突,merge自动完成。
5.1新建feature分支
5.2在feature分支提交代码
5.3切换到master分支
5.4在master分支提交代码
5.5从feature分支向master分支合并
5.6冲突提示
5.7本地编辑手动解决冲突
5.8合并结果推送到开发云平台
6FAQ
6.1华为云社区Devcloud产品答疑FAQ
http://forum.huaweicloud.com/forum-642-1.html
7附录
7.1软件开发服务(DevCloud)用户指南
1、视频教程
【新手训练营】几分钟教你掌握各个服务基本操作
项目管理配置管理流水线代码检查编译构建测试管理部署发布
【云途进阶课】场景化教学,从实战中玩转软件开发云
Web应用场景——开发一套EHR系统:规划阶段开发阶段交付阶段
App应用场景——打造一款趣味交友App:规划阶段开发阶段交付阶段
迁移上云秘籍
1、从SVN迁移到GIT最强指南
2、为何选择Git版本控制系统
3、Git的工作模式
4、如何将本地代码提交到托管平台