贡献流程
环境准备
- 针对Git的安装、环境配置及使用方法,请参考GitCode帮助中心的Git知识大全:https://docs.gitcode.com/docs/help/home/general-reference/git
- 注册SSH公钥,请参考GitCode帮助中心的公钥管理:https://docs.gitcode.com/docs/help/home/user_center/security_management/ssh
- 在开展GitCode的工作流之前,您需要先在ArkUI-X的代码托管平台上找到您感兴趣的Repository。
代码下载
从云上Fork代码分支
- 找到并打开对应Repository的首页。
- 点击右上角的 Fork 按钮,按照指引,建立一个属于个人的云上Fork分支。
把Fork仓下载到本地
请按照以下的过程将Repository内的代码下载到您的在计算机上:
-
创建本地工作目录:
您需要创建本地工作目录,以便于本地代码的查找和管理
mkdir ${your_working_dir} -
复制远程仓库到本地
-
切换到本地路径
mkdir -p ${your_working_dir} cd ${your_working_dir} -
复制远程仓库到本地
-
您可以在仓库页面内复制远程仓库的拷贝地址,得到$remote_link:
图 1 复制远程仓库

-
在本地电脑执行拷贝命令:
git clone $remote_link
-
-
使用repo工具批量下载代码仓
-
下载GitCode repo工具(可以参考GitCode帮助中心:https://gitcode.com/gitcode-dev/repo/overview):
curl https://gitcode.com/gitcode-dev/repo/blob/main/repo-py3 > /usr/local/bin/repo chmod a+x /usr/local/bin/repo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests -
下载(注意没有repo branch参数):
repo init -u https://gitcode.com/arkui-x/manifest.git -b master --no-repo-verify repo sync -c
代码提交
单仓提交(git clone场景)
-
拉分支
更新您的本地分支
git remote add origin $remote_link git fetch origin git checkout master git pull --rebase基于远端master分支拉取本地调试分支
git branch myfeature origin/master git checkout myfeature然后在myfeature分支上编辑和修改代码。
-
在本地工作目录提交变更
git add . git commit -sm "xxxxxx" // 提交信息包含signoff邮箱您可能会在前次提交的基础上,继续编辑构建并测试更多内容,可以使用commit --amend继续添加提交。
-
将变更推送到您的远端目录
准备进行审查(或只是建立工作的异地备份)时,将分支推到您的fork仓库:
git push -f origin myfeature
多仓提交(repo init/sync场景)
- 配置全局环境token码:
repo config --global repo.token {TOKEN}
token码在GitCode个人设置→安全设置→访问令牌中生成,例如
repo config --global repo.token 211XXXXXXXXXXXXXXXXXXXXXXXX
- 在GitCode上任意一个此次要修改的仓下创建issue(类似于gerrit的changeID功能,用来关联多个耦合仓修改),并记录下issue编号(如下图中的issue编号是#I1TVV4)(如果不涉及多个仓耦合修改,则此步骤不需要):

- 在本地代码工作区新建分支,修改代码,并提交:
repo start branchname --all
修改代码后在此次修改的多个仓里执行:
git add .
git commit -sm "xxxxxx"
或者通过repo工具批量add/commit,在代码工程根目录下执行:
repo forall -c 'git add .'
repo forall -c 'git commit -sm "xxxxxx"'
- PUSH代码(注意:不支持repo upload):
配置push代码时是否直接生成PR,选择False是不直接生成,需要手动去fork仓里生成PR,选择True是push到fork仓的同时生成PR:
repo config repo.pullrequest {True/False}
例如选择push代码的时候同时生成PR,则执行:
repo config repo.pullrequest True
push代码:
repo push --br={BRANCH} --d={DEST_BRANCH} --content={PR_CONTENT}
BRANCH为本地分支,DEST_BRANCH为目的分支(即主干分支),一般是master,PR_CONTENT为填写的PR描述,假设涉及多仓耦合提交,这里必须填写Issue编号,例如:
repo push --br="20200903" --d="master" --content="#I1TVV4"
在弹出的编辑页面将需要提交仓、分支、commit的注释符打开:

保存退出,repo会自动将本地分支推送到远端fork仓(如果没有fork仓,系统会自动创建fork仓)里,并自动生成PR:

同时自动将PR和Issue关联:

创建Pull Request(如已通过repo工具自动创建PR,则此步忽略)
访问您在GitCode上的fork仓页面,点击创建Pull Request按钮选择myfeature分支生成PR。
详细操作请参考GitCode帮助中心的开发协作指导:https://docs.gitcode.com/docs/help/home/org_project/pullrequests
须知: 多个代码仓存在编译依赖时如何同时发起构建: 跨平台项目开发时,经常会遇到多个代码仓的修改具有编译依赖关系,需要同时构建、同时合入。为此GitCode平台将Issue作为具有编译依赖的多个代码仓提交PR的关联标识。具体操作如下:
- 在此次提交的任意一个代码仓上创建Issue。
- 将多个需要同时构建、同时合入的PR关联上述Issue,具体操作请参考GitCode帮助中心:https://docs.gitcode.com/docs/help/home/org_project/pullrequests/pr-related-issue/。
- 触发构建(详见触发构建的操作帮助)后,构建中心会识别关联了同一Issue的PR,同时下载构建,并在代码审核通过后,同时进行合并入代码库。
代码审查
请参考GitCode帮助中心:https://docs.gitcode.com/docs/help/home/org_project/pullrequests/pr-code-review