概述
在团队开发过程中,通常使用 GitLab、GitHub、Bitbucket 等工具进行代码和流程管理。在 WeData Studio 中,通过创建 Git 文件夹,可以与远程 Git 仓库建立连接,从而实现高效的团队协作。
远程 Git 仓库的作用
远程 Git 仓库作为代码的集中管理点,主要职责包括:
存储代码的权威版本:确保团队成员能够访问到最新的代码版本。
处理 Pull Request 的审查和合并:允许团队成员提交代码变更,并通过审查流程进行合并。
触发 CI/CD 流程:自动化测试和部署,提高开发效率。
Studio Git 文件夹的作用
Studio Git 文件夹作为个人的“开发工作区”和本地的“Git 客户端”,主要职责包括:
同步远程仓库代码到 Git 文件夹:将远程仓库的代码同步到 Git 文件夹中进行开发。
提交和推送代码:将本地的代码变更提交到远程 Git 仓库,以记录开发历史。
可视化查看差异和解决冲突:提供工具以便于查看代码变更的差异,并在合并时解决冲突,确保代码的正确性。
下面以一个简单的例子,对如何在 WeData 中使用 Git 功能进行团队协作进行阐述。
注意:
WeData Studio 基于 VSCode 构建,Git 操作界面与 VSCode 一致。如果您熟悉 VSCode 的 Git 功能,可以直接上手使用。更多关于 VSCode Git 功能的详细介绍,请参阅 VSCode 源代码管理官方文档。
示例场景
某电商公司A有一个数据开发团队,现接到业务方数据需求,需要开发一张“地域维度的订单统计表”,定期产出数据从而辅助业务方决策。
项目成员分工
假设数据开发团队中有三个成员,其角色和分工如下:
成员 | 角色 | 职责 | 所需权限 |
成员A | 项目管理员 | 负责 WeData 平台的项目配置 | WeData 项目管理员角色 |
成员B | 数据开发工程师 | 负责开发新的任务,以及修复已有 Bug | WeData 数据工程师角色 |
成员C | CI/CD 工程师 | 负责代码审查和分支合并 | WeData 数据工程师角色 + Git 仓库管理权限 |
项目和分支管理
由于要进行开发和生产环境的隔离,该项目团队有一个开发环境项目:project_dev,和生产环境项目:project_prod。
其中,开发环境项目绑定的是开发分支 dev,生产环境项目绑定的是生产分支 main。

Git 分支类型和用途
分支 | 用途 | 命名规范 | 生命周期 |
main/master | 生产分支,存放稳定可发布的代码 | - | 永久 |
develop | 开发分支,日常开发集成分支 | - | 永久 |
feature/* | 新功能开发 | feature/功能名称 | 短期 |
bugfix/* | Bug 修复 | bugfix/问题描述 | 短期 |
hotfix/* | 紧急线上问题修复 | hotfix/问题描述 | 短期 |
release/* | 发布准备 | release/版本名称 | 短期 |
说明:
分支合并策略建议:
Merge:适用于功能分支合并到主分支,保留完整的开发历史。
Rebase:适用于同步主分支最新代码到个人开发分支,保持线性历史。
Squash Merge:适用于将多个小提交合并为一个,保持主分支整洁。
操作流程
成员A:创建项目并完成 Git 配置
1. 创建并配置项目。

2. 配置项目成员和角色。
进入项目管理 > 成员与角色管理,将用户B加入两个项目,并且授予数据工程师角色。

3. 配置项目 Git 地址。
进入项目管理 > Git 配置,填写 Git 仓库地址、供应商和分支。其中,开发环境为 dev 分支,生产环境为 main 分支。
选择 Git 仓库所在的网络环境,进行网络配置的初始化和连通性测试,连通成功后保存配置信息。

注意:
分支保护建议:
建议在 Git 平台(如GitLab/GitHub)配置分支保护规则:
main 分支禁止直接推送,必须通过 PR 合并。
合并前要求至少1人 Code Review 通过。
合并前要求 CI 检查通过。
成员B:进行数据开发并推送代码
1. 进入开发环境项目。
进入开发环境项目:project_dev
2. 完成个人Git权限配置。
单击右上角用户中心 > 个人设置,配置个人 Git 权限,填写 Email 和 Token 信息后,单击保存并初始化个人运行环境。

说明:
Token 安全最佳实践:
权限最小化:Token 只授予必要的权限(如仅读写代码仓库)。
定期轮换:建议每3-6个月更换一次 Token。
不要泄露:切勿在代码中硬编码 Token,不要分享给他人。
及时撤销:人员离职或 Token 泄露时,立即在 Git 平台撤销 Token。
验证配置是否成功:
进入 Studio,检查 GitFolder 是否能正常显示仓库文件列表。
如果显示错误提示,请检查 Token 权限和网络连接。
3. 同步 dev 分支到本地。
进入 Studio,在 GitFolder 中将自动同步 dev 分支下的所有代码文件。

4. 开发并提交代码。
完成代码开发后,进入 Git 源代码管理:
暂存变更:选择需要提交的文件,单击“+” 暂存。
填写提交信息:按照 Commit 规范填写提交说明。
提交代码:单击 Commit 将代码变更暂存并提交到本地 dev 分支。

5. 推送分支到远程仓库。
单击 Sync Changes(等同于 git push),将本地 dev 分支的代码推送到远程 dev 分支。

注意:
推送冲突处理:
如果推送时提示冲突,说明其他成员已提交了更新。处理步骤:
1. 先拉取(Pull)最新代码。
2. 在本地解决冲突(编辑冲突文件,选择保留的内容)。
3. 重新提交并推送。
6. 在 Git 平台创建 PR,交给成员C审查。
在远程 Git 平台(如GitLab/GitHub)操作:
进入仓库页面,单击 New Pull Request 或 New Merge Request。
选择源分支:dev,目标分支:main。
填写 PR 标题和描述,说明本次变更内容。
指定 Reviewer 为成员C。
提交 PR 等待审查。
成员C:代码审查和代码发布
1. 在 Git 平台查看 PR 改动内容。
2. 在远程 Git 平台操作:
进入 PR 详情页,查看 Files Changed 标签页。
逐行检查代码变更,关注以下要点:
代码逻辑是否正确。
是否符合编码规范。
是否有潜在的性能问题。
是否有安全风险。
如有问题,在对应代码行添加评论,提出修改意见。
如果代码需要修改,单击 Request Changes。
3. 批准合并,将 dev 分支合并到 main 分支。
确认代码无问题后:
单击 Approve 批准 PR。
单击 Merge 将 dev 分支合并到 main 分支。
(可选)合并后删除源分支,保持仓库整洁。
成员B:配置生产环境任务
1. 进入生产环境项目。
进入生产环境项目:project_prod
2. 创建 Notebook 任务。
进入工作流编排 > 编排空间,创建工作流和 Notebook 任务,引用远程 Git 仓库 main 分支中的 Notebook 文件。

3. 配置任务周期性调度。
单击任务配置 > 调度设置,配置任务的调度周期,例如每天00:00执行一次,从而周期性产出数据结果。

Studio Git 界面操作指南
该文档涵盖以下内容:
源代码管理面板的使用
文件暂存、提交、推送操作
查看文件差异(Diff Editor)
分支切换与创建
合并冲突的可视化解决
时间线视图(Timeline)
以及更多高级功能
安全最佳实践
.gitignore 配置
在项目根目录创建 .gitignore 文件,避免敏感信息被提交:
# 配置文件*.propertiesconfig/secrets.yaml# 环境变量.env.env.local# IDE配置.idea/.vscode/# 日志文件*.loglogs/# 临时文件*.tmp*.bak
敏感信息处理
1. 不要提交密码、Token、密钥等敏感信息到代码仓库。
2. 使用环境变量或配置中心管理敏感配置。
3. 如果不慎提交了敏感信息,应立即:
更换泄露的密码/Token。
联系 Git 仓库管理员清理历史记录,或参考 Git 平台的敏感信息删除指南。
常见问题
Git 文件夹无法同步代码?
可能原因及解决方案:
1. 网络问题:检查网络连接,确认能访问 Git 仓库地址。
2. Token 过期:重新生成 Token 并更新个人设置。
3. 权限不足:确认 Token 具有仓库读取权限。
推送代码时提示"权限被拒绝"?
可能原因及解决方案:
1. Token 权限不足:确认 Token 具有写入权限。
2. 分支保护:检查目标分支是否开启了保护,需要通过 PR 合并。
如何处理大文件?
建议:
1. 避免将大文件(如视频、数据集)直接提交到 Git 仓库。
2. 或将大文件存储到对象存储(COS),代码中引用 URL。
多人同时修改同一文件怎么办?
1. 开发前先拉取最新代码。
2. 尽量拆分大文件为多个小文件,减少冲突概率。
3. 频繁提交和同步,避免大量代码积压。
4. 遇到冲突时,与相关同事沟通后再解决。
如何查看历史提交记录?
在 Git 源代码管理面板中:
1. 单击 History 或 Git Log 查看提交历史。
2. 可以查看每次提交的变更内容、作者和时间。
相关链接
Git 官方文档