更新时间:2024-08-26 GMT+08:00
分享

配置CodeArts Repo代码仓库设置

配置代码仓库级的仓库设置

如果在项目级“仓库设置”勾选了“开启强制继承”,代码仓库下不支持“仓库设置”

如果不继承项目级配置,可参考下表设置参数。

表1 代码仓库级的仓库设置参数填写表格

参数

说明

默认分支管理

此参数非必填。默认将“master”分支设置为默认分支,即创建代码仓库时的主分支。

开启开发人员创建分支权限白名单

此参数非必填。默认不勾选,勾选后,开启开发人员创建分支权限白名单,只有开发人员角色的仓库成员才能进入此白名单。非开发人员将不会被显示,并且即使配置后也不会生效。

禁止Fork仓

非必填参数。勾选此选项,表示任何人不可以Fork该项目下的代码仓库。

MR预合并

非必填参数。勾选此选项,表示启用MR预合,服务端会自动生成MR预合并的代码,相比客户端使用命令做预合并操作更高效简洁、构建结果更准确,适用于对构建实时性要求严格的场景。

分支名规则

非必填参数。所有分支名都必须匹配正则表达式,分支名规则不能超过500个字符。如果此字段不填写,则允许任何分支名。规则需要满足基本的Tag命名规则:

  • 不能超过500个字符。
  • 不支持以 - . refs/heads/ refs/remotes/ 开头,不支持空格 [ \ < ~ ^ : ? * ! ( ) ' " | 等特殊字符,不支持以. / .lock结尾。

Tag名规则

非必填参数。所有Tag名都必须匹配正则表达式。如果此字段不填写,则允许任何Tag名。 需满足基本的Tag命名规则:

  • 不能超过500个字符。
  • 不支持以 - . refs/heads/ refs/remotes/ 开头,不支持空格 [ \ < ~ ^ : ? * ! ( ) ' " | 等特殊字符,不支持以. / .lock结尾。

配置代码仓库级的保护分支规则

如果勾选“继承项目设置”,代码仓库下不支持再次“新建保护分支”,代码仓库下的成员均可执行该操作。

如果不继承项目级配置,可参考下表设置参数。

表2 新建保护分支的参数表格

参数名称

参数解释

选择需要添加的保护分支

根据自己的需要输入完整的分支名或者带通配符的分支名。

仅支持单个添加,不支持批量添加。要求以“refs/heads/”开头,结尾可以有 “*”,其它位置不可以出现特殊字符。

添加权限

该参数非必填。支持对管理员/项目经理、Committer和开发人员添加如下权限:

  • 推送。拥有该权限,可推送Commit到保护分支。
  • 合并。拥有该权限,可以对该保护分支合入合并请求。
    说明:

    如果打开推送权限,默认同步打开合并权限,且不可单独关闭合并权限。

配置代码仓库级的保护Tag规则

进入要设置设置的代码仓库首页,,选择“设置 > 策略设置 > 保护Tags”,单击“新建保护Tag”,参考下表填写配置参数。

表3 新建保护Tag参数说明

参数

说明

选择需要保护的Tag

该参数必填。根据自己的需要输入完整的Tag或者带通配符的Tag。

仅支持单个添加,不支持批量添加。要求以“refs/heads/”开头,结尾可以有“*”,其它位置不可以出现特殊字符。

允许创建

该参数必填。表示添加“允许创建保护Tag”的角色。您可以在下拉框选择允许创建的角色。

配置代码仓库级的提交规则

CodeArts Repo支持为代码的提交建立校验、限制规则,以确保代码质量,您可以勾选“继承项目设置”,自动继承并使用项目下设置且不支持更改。您也可以进入要配置的代码仓库首页,选择“设置” > “策略设置” > “提交规则”,单击“新建提交规则”,参数填写请参见表格表2

配置代码仓库的子模块设置

子模块(submodule)是Git为管理仓库共用而衍生出的一个工具,通过子模块您可以将公共仓库作为子目录包含到您的仓库中,并能够双向同步该公共仓库的代码,借助子模块您能将公共仓库隔离、复用,能随时拉取最新代码以及对它提交修复,能大大提高您的团队效率。

有种情况经常会遇到:某个工作中的项目A需要包含并使用项目B(第三方库,或者你独立开发的,用于多个父项目的库),如果想要把它们当做两个独立的项目,同时又想在项目A中使用项目B,可以使用Git的子模块功能。 子模块允许您将一个Git仓库作为另一个Git仓库的子目录。 它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。

子模块将被记录在一个名叫“.gitmodules”的文件中,其中会记录子模块的信息:

[submodule "module_name"]      #子模块名称
path = file_path               #子模块在本仓库(父仓)中文件的存储路径。
url = repo_url                 #子模块(子仓库)的远程仓地址

这时,位于“file_path”目录下的源代码,将会来自“repo_url”

控制台操作

  • 控制台添加子模块
    • 入口一:

      可以在仓库文件列表中的某个文件夹下添加子模块。

      单击扩展按钮,选择“新建子模块”,如下图所示。

    • 入口二:

      可以在仓库的“代码”页签中,添加子模块。

      单击扩展按钮,选择“新建子模块”,如下图所示。

    • 入口三:

      可以在仓库设置中,为仓库创建子模块。

      其操作路径为“设置 > 仓库管理 > 子模块设置 > 新建子模块”。

    • 填写说明

      使用以上三种方法均可进入“新建子模块”页面。

      请参考下表填写,完成后单击“确定”按钮,即可完成新建子仓库操作。

      表4 新建子模块—字段说明

      字段

      填写说明

      子模块仓库路径

      选择一个仓库作为子仓库。

      子模块仓库分支

      选择同步子仓库的目标分支到父仓库。

      子模块文件路径

      配置子模块文件在本仓库下的路径,注意用“/”分割层级。

      提交信息

      作为您新建子仓库的备注信息,可以在文件历史中查找到本次操作,限制2000个字符。

      子模块新建完成后,可以在仓库文件列表的对应目录内找到子模块(子仓库)内容,其对应的文件左侧图标为

  • 控制台查询子模块状态、同步、删除子模块

    管理员可以通过查看“设置”页面下的“子模块设置”页面,查看子模块状态,同步子模块,删除子模块。

  • 控制台同步部署密钥

    对于客户端提交的子模块,需要仓库管理员在“设置”页面下的“子模块设置”页面,将父仓库的部署密钥同步到子仓库中,从而保证在构建父仓库时,可以将对应提交的子仓库一同拉取下来。

Git客户端操作

  1. 添加Submodule

    git submodule add <repo> [<dir>] [-b <branch>] [<path>]

    示例:

    git submodule add git@***.***.com:****/WEB-INF.git

  2. 拉取包含submodule的仓库

    git clone <repo> [<dir>] --recursive

    示例:

    git clone git@***.***.com:****/WEB-INF.git --recursive

  3. 获取远端Submodule更新

    git submodule update --remote

  4. 推送更新到子库

    git push --recurse-submodules=check

  5. 删除Submodule

    1. 删除“.gitsubmodule”中对应submodule的条目。
    2. 删除“.git/config”中对应submodule的条目。
    3. 执行命令,删除子模块对应的文件夹。
      git rm --cached {submodule_path}    #注意更换为您的子模块路径

      注意:路径不要加后面的“/”。

      示例:你的submodule保存在“src/main/webapp/WEB-INF/”目录,则执行命令为:

      git rm --cached src/main/webapp/WEB-INF

更多详情请参见官方文档Git 工具 - 子模块

相关文档