功能总览
-
分支管理
-
分支是版本管理工具中最常用的一种管理手段,使用分支可以把项目开发中的几项工作彼此隔离开来使其互不影响,当需要发布版本之前再通过分支合并将其进行整合。
在代码托管服务/Git仓库创建之初都会默认生成一条名为master的分支,一般作为最新版本分支使用,开发者可以随时手动创建自定义分支以应对实际开发中的个性场景。发布区域:全部
-
-
标签管理
-
标签(tag)是Git提供的帮助团队进行版本管理的工具,您可以使用Git标签标记提交,从而将项目中的重要的版本管理起来,以便日后精确检索历史版本。
标签会指向一个commit,就像一种引用,无论后续版本怎么变化,它永远指向这个commit不会变化,相当于一个被永远保存的版本快照(只有手动删除时才会被剔除版本库)。
在使用Git进行代码管理时,我们可以根据每次提交(commit)的ID去查找、追述历史版本,这个ID是一长串编码,相对于我们熟知的“V 1.0.0”这样的版本号,CommitID不便于记忆,同时也不具备可识别性,这时我们就可以给重要的版本打上标签,给它一个相对友好的名字(比如“ myTag_V1.0.0 ”、“首个商业化版本”)以便更容易记住和追述它。发布区域:全部
-
-
提交网络
-
仓库提交网络是以流向图的形式展现了某条分支或标签的整个提交(commit)历史(包括动作、时间、提交者、提交系统生成备注和手动填写备注)以及提交历史的关系。
相对于文件页签中的历史而言,提交网络具备展现提交之间关系的优势。
发布区域:全部
-
-
版本管理
-
版本管理是CodeArts Repo的基础功能集之一。
版本管理是为满足不同需求,对同一产品或系统进行局部的改进 和改型所产生的产品或系统系列的变更情况进行记录、跟踪、维护和控制的过程。
包括但不限于:分支、标签、差异对比以及其衍生功能
发布区域:全部
-
差异对比
-
差异对比可以帮助开发者直观的查看到各个代码版本之间的差异,是本服务提供的版本管理手段之一。
在仓库控制台中,可以对任意的分支、标签、某次提交进行代码差异的对比,对比出的差异包括变更、新增、删除三个种类,不同种类的差异会以不同样式进行显示以方便辨识。
发布区域:全部
-
-
Fork(复刻)
-
Fork可基于某个仓库镜像出一个一样的仓库,并能将镜像仓库中的修改请求合并回源仓库,当合并未发生时,镜像仓、源仓库的修改都不会对彼此产生影响
可见Fork特别适用于大型项目包含众多子项目时的开发场景,如下图所示,复杂的开发过程都只发生在镜像仓中,并不会影响到项目版本仓库(源仓库),只有确认完成的新特性才会请求合并回项目版本仓库。
所以可以认为Fork是一种团队协作模式。
发布区域:全部
-
-
备份
-
备份其实就是仓库的备份操作,将仓库备份到您本地计算机。可使用HTTPS、SSH两种clone形式生成clone命令,只要粘贴进本地Git客户端并执行即可。(需要保证仓库连通性)
发布区域:全部
-
-
Cherry-Pick
-
cherry-pick就是把某一次提交取出,并将它覆盖到某个版本上。
当需要在本地合入其他分支的提交时,如果我们不想对整个分支进行合并,而是只想将某一次提交合入到本地当前分支上,那么就要使用git cherry-pick了。发布区域:全部
-
-
-
新建&导入仓库
-
日常开发
-
代码托管服务支持开发者在线修改代码、在线处理代码冲突、查看提交历史并对提交记录进行评论。
同时也支持开发者将代码下载到本地或是从本地提交到云端。
发布区域:全部
-
提交&下载代码
-
代码托管服务支持用户在控制台进行代码修改,同时也支持用户在本地计算机进行代码修改。
云端代码版本和本地代码版本可以通过上传&下载的操作在彼此间进行同步。
代码托管服务提供了多种上传&下载方式。
发布区域:全部
-
-
在线修改代码
-
用户可以随时随地使用互联网登录控制台进行代码的修改,可提升问题修复速度,提升操作的灵活性。
发布区域:全部
-
-
处理代码冲突
-
在多人团队使用代码托管服务时,不可避免的会出现两个人同时修改了一个文件的情况,这时在推送(push)代码到代码托管仓库时就会出现代码提交冲突并推送失败。
当代码提交冲突产生时,我们可以将远程代码仓库拉取(pull)到本地仓库的工作区,这时Git会将可以合并的修改内容进行合并,并将不能合并的文件内容进行提示,开发者只需要对提示的冲突内容进行修改即可再次推送到远程仓库(add → commit → push),这时冲突就解决完毕了。
代码托管服务可支持您在线解决冲突或者上文提到的本地解决冲突。
发布区域:全部
-
-
查看&评论提交记录
-
代码托管服务支持查看提交历史的详细信息以及其涉及的文件变更。
您可以在仓库的提交网络、仓库文件列表的历史页签中,查看提交历史的清单,单击某次提交历史可以进入查看此次提交提交人、提交号、父节点、此条提交下评论的数量、代码变更对。
可以对提交内容进行评论,也可对评论内容进行跟帖。发布区域:全部
-
-
-
关联工作项
-
-
代码托管服务可以将每一次代码提交(commit)关联到项目管理的工作项中。
-
关联工作项可以帮助开发者精确记录每一次修复bug、提交新特性时所对应工作任务。
-
关联工作项可以帮助项目管理者查看每一个需求、bug修复时,所涉及修改内容的提交人、具提提交内容等信息。
-
在代码托管控制台中,对文件的任何操作在保存时都会要求必须填写一个提交信息(或备注、每个页面用词不一样)才能保存,可以理解为控制台的每一次保存都是一次commit操作,其必填的提交信息对应了commit命令的-m内容,代码托管服务以从-m(提交信息) 中捕获关键字的方式来自动关联工作项。
发布区域:全部
-
-
分支合并评审
-
代码托管服务支持多分支开发,并为分支合并建立了可配置的审核规则,当一个开发者发起一次分支合并请求时,仓库成员都可以参与到评审中,让更多的人参与到代码审视中,以确保准合并代码的正确性。
合并请求发起时,评审人、合并人会收到邮件、短信等提醒。发布区域:全部
-
-
开发管理设置
-
-
代码托管服务提供诸多配置项以适配多样的仓库、研发需要。
-
包括但不限于仓库信息、通知设置、仓库锁定、默认分支管理、代码提交规则设置、仓库加速、保护分支管理等。
发布区域:全部
-
默认分支管理
-
- 默认分支会作为进入本仓库时,默认选中的分支,也会作为创建合并请求时,默认的目标分支。
- 仓库新建时,master分支将被作为默认分支,可以随时手动调整。
发布区域:全部
-
-
代码提交规则设置
-
- 在进行仓库管理时,可对代码提交规则进行设置。
- 设置项包含但不限于:签名规则、是否允许远程删除分支、是否拒绝秘密文件提交、提交注释匹配规则、禁止提交的文件类型、分支名称规则等。
发布区域:全部
-
-
通知设置
-
可设置在以下情况是否给仓库成员发送通知:
仓库冻结:默认给仓库所有者、管理员发送邮件通知,不可手动设置。
当仓库欠费时间超出了宽限期但在保留期内,仓库会被冻结,冻结中仓库不能进行任何操作。(详细了解宽限期、保留期)续费即可解决冻结状态。
仓库关闭:默认给仓库所有者、管理员发送邮件通知,不可手动设置。
仓库关闭等同于被彻底删除,有两种情况会导致仓库关闭:
手动关闭服务。
仓库冻结时间超过了保留期。
合并请求:默认给合并人、评审人发送邮件通知,不可手动设置。(什么是合并请求?)
仓库删除:可手动设置给所有者、管理员、开发者、浏览者发送邮件通知。发布区域:全部
-
-
设置保护分支
-
- 分支保护功能的意义如下:
- 保证分支的安全性,允许开发人员使用合并请求合入代码。
- 阻止管理者以外的人推送代码。
- 阻止任何人强行推送到此分支。
- 阻止任何人删除此分支。
在保护分支管理中可以针对某条分支进行设置,使其可以受到如下四条限制中的任意几条:
- 是否允许管理员提交。
- 是否允许开发者提交。
- 是否允许管理员合并。
- 是否允许开发者合并。
发布区域:全部
-
-
合并请求规则设置
-
合并请求规则设置主要用于在使用分支合并评审时,设置相关的规则,其相关配置项如下:
创建者自己不能合入:勾选时,分支合并请求的发起者自己不能进行合入分支的操作。
不能重新打开一个已经关闭的合并请求:勾选时,当分支合并请求已经关闭后,不能将其重新置回“开启”状态。评审问题为全部解决时才可以合入:开启后,在评审中所有标记为问题的评论都为已解决状态时,才能执行合入。
合入后删除源分支:合并成功后,源分支将被删除。
- 已经设置成保护分支的源分支不会被删除。
- 此设置对历史合入请求,不会生效,不必担心启用此设置会丢失分支。
发布区域:全部
-
-
成员与权限管理
-
- 仓库成员来源于其所属项目的项目成员。
- 项目成员主要来源于租户的IAM用户,除项目创建者所在租户外,还可以邀请其它租户下的IAM账号加入项目。
- 只有仓库创建者(所有者)、仓库管理员才能对仓库人员进行变动,其他人员只能浏览仓库成员列表。
发布区域:全部
-
-
管理者仓库锁定
-
为防止任何人破坏即将发布版本的代码仓库,管理员可以锁定仓库,在锁定仓库后,任何人都无法向任何分支提交代码(包括管理员本人)。
发布区域:全部
-
-
-
安全策略
-
- 代码托管服务提供了IP白名单、SSH、HTTPS等安全访问限制。
- 并对仓库操作记录日志。
发布区域:全部
-
IP白名单
-
- IP白名单是对IP范围开设的白名单,通过设置IP白名单能大大增强您的仓库的安全性。
- 只有在IP白名单范围内的仓库访问才是允许的,除此之外其他IP发起的访问将被拒绝。
发布区域:全部
-
-
SSH密钥&HTTPS密码
-
当您需要将代码推送到云端仓库或从云端仓库下拉代码时,云端仓库需要验证您的身份与权限,SSH和HTTPS是对代码托管服务进行远程访问的两种身份验证方式。
SSH密钥是在本地计算机与您账号下的代码托管服务之间建立安全连接。
在一台本地计算机上配置了SSH密钥并添加公钥到代码托管服务中后,所有该账号下的代码仓库与该台计算机之间都可以使用该密钥进行连接。
不同的用户通常使用不同的电脑,在使用SSH方式连接代码仓库前需要在自己电脑生成自己的SSH密钥,并设置到代码托管服务中。HTTPS密码是HTTPS协议方式下载、上传时使用的用户凭证。
每个开发者,只需要设置一次密码,所有该项目下的仓库都会生效。发布区域:全部
-
-
风险操作
-
目前管理员可执行的风险操作包括:
- 移交仓库所有者。
- 删除仓库。
- 更改仓库名。
发布区域:全部
-
-
部署密钥
-
- 当配置了部署密钥(Deploy Key),代码托管服务将允许您通过SSH协议以只读的方式克隆仓库,主要在仓库部署、持续集成等场景中使用。
- 部署密钥其实就是您本地生成的SSH密钥的公钥,但仓库的部署密钥和SSH密钥不能配置成一个。
- 多个仓库之间可以使用同一个部署密钥,一个仓库最多可以添加10个不同的部署密钥。
发布区域:全部
-
-
审计日志
-
审计日志可根据操作时间、操作者、具体行为,行为所影响的分支、标签进行查询。
发布区域:全部
-
-
-
高级功能
-
代码托管服务已经支持Submodule、仓库迁移&备份、仓库统计等功能。
发布区域:全部
-
Submodule
-
子模块(submodule)是Git为管理仓库共用而衍生出的一个工具,通过子模块您可以将公共仓库作为子目录包含到您的仓库中,并能够双向更新该公共仓库的代码,借助子模块您能将公共仓库隔离、复用,能随时拉取最新代码以及对它提交修复,能大大提高您的团队效率。
有种情况我们经常会遇到:某个工作中的项目A需要包含并使用项目B(第三方库,或者你独立开发的,用于多个父项目的库),如果想要把它们当做两个独立的项目,同时又想在项目A中使用项目B,可以使用Git的子模块功能。 子模块允许您将一个Git仓库作为另一个Git仓库的子目录。 它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。
发布区域:全部
-
-
仓库迁移
-
代码托管服务中提供三种迁移方式,请结合你目前的仓库存储方式选择。
发布区域:全部
-
-
仓库统计
-
在仓库详情中的“仓库统计”页签,可以查看仓库的相关统计信息,详情如下:
仓库信息概要:主要显示仓库容量、LFS容量、仓库分支数量(云端仓库)、标签数量(云端仓库)、仓库成员数量、总提交次数统计。可选择分支,对仓库趋势图、贡献者统计、提交统计的统计范围产生影响。(不会影响仓库信息概要)
仓库趋势图:显示仓库当前分支的提交分布情况。
贡献者统计:统计当前分支中代码提交者们的贡献度(提交次数、代码行数),其排列顺数是按贡献度先排列。
提交统计:按不同维度(每周、每天、每小时)统计代码提交活跃度。
发布区域:全部
-
-
-
客户端
-
代码托管服务使用Git作为客户端。
开发人员的本地环境需要安装Git Bash或TortoiseGit等Git客户端工具,实现与代码托管服务的连接。
发布区域:全部
-