本文介绍 DataLeap New IDE WebIDE 中的 Git 版本控制操作,包括仓库绑定、分支管理、文件暂存、提交、推拉同步及冲突解决等完整工作流。
New IDE 的 WebIDE 基于 VS Code Web 版本构建,Git 操作能力由沙箱环境内运行的 VS Code Server 及其内置 Git 扩展(vscode.git)提供。用户在 WebIDE 中获得的 Git 体验与桌面版 VS Code 一致——源代码管理面板、分支切换、提交历史、冲突解决等功能开箱即用。
核心架构:
git 命令行),性能接近桌面版。inotify 机制实时推送至前端。Git 操作依赖个人开发环境(Sandbox)的启动。当用户首次进行 Git 相关操作时,系统会按"项目 + 用户"维度自动启动或复用沙箱实例。
沙箱环境会自动挂载用户的 Git 凭据,支持以下方式:
凭据类型 | 挂载位置 | 说明 |
|---|---|---|
SSH 密钥 |
| 用于 SSH 协议的仓库访问。 |
Git Token |
| 用于 HTTPS 协议的仓库访问。 |
Git 配置 |
| 用户名、邮箱等全局配置。 |
说明
凭据通过 Secret 安全挂载到沙箱内部,与其他用户严格隔离。
Git 仓库绑定作用于用户的个人目录,便于隔离用户工作副本。
在 WebIDE 左侧文件树中,用户个人目录下可见 Repos/ 目录,用于存放绑定的 Git 仓库工作副本。
Ctrl+Shift+P / Cmd+Shift+P)。Git: Clone 执行仓库克隆。/Workspace/Users/<用户名>/Repos/ 作为克隆目标目录。.git 目录并激活 Git 功能。/Workspace/ ├── Users/ │ └── user1/ │ ├── Repos/ # Git 仓库目录 │ │ ├── project-a/ # 仓库工作副本 │ │ │ ├── .git/ │ │ │ ├── src/ │ │ │ └── ... │ │ └── project-b/ │ ├── notebooks/ # 普通文件目录 │ └── sql/ ├── Shared/ # 工作空间共享目录 └── ...
WebIDE 左侧活动栏中的 Source Control(源代码管理)图标打开 Git 操作面板,提供以下核心功能区域。
区域 | 说明 |
|---|---|
Changes(更改) | 显示工作区中已修改但未暂存的文件。 |
Staged Changes(已暂存的更改) | 显示已通过 |
Merge Changes(合并更改) | 冲突状态下显示需要解决的文件。 |
Commit Message(提交消息) | 输入本次提交的说明文字。 |
标记 | 含义 | 对应 Git 状态 |
|---|---|---|
| Modified(已修改) | 文件内容变更 |
| Untracked(未跟踪) | 新文件,未纳入版本控制 |
| Deleted(已删除) | 文件被删除 |
| Renamed(已重命名) | 文件被重命名 |
| Conflict(冲突) | 合并冲突待解决 |
| Added(已添加) | 新文件已暂存 |
状态栏左下角始终显示当前所在分支名称,点击可快速切换分支。
等效命令:
git checkout <branch-name>
等效命令:
git checkout -b <new-branch-name>
等效命令:
git push -u origin <new-branch-name>
在 Source Control 面板中:
+ 图标。+ 图标。- 图标。等效命令:
git add <file> # 暂存单个文件 git add . # 暂存所有更改 git reset HEAD <file> # 取消暂存
Ctrl+Enter / Cmd+Enter,提交暂存的更改。等效命令:
git commit -m "提交消息"
通过 Source Control 面板的 ... 菜单可使用更多提交选项:
操作 | 说明 | 等效命令 |
|---|---|---|
Commit All | 暂存所有更改并提交 |
|
Commit Staged | 仅提交已暂存的文件 |
|
Undo Last Commit | 撤销上一次提交(保留更改) |
|
Amend Last Commit | 修改上一次提交 |
|
将本地提交推送到远程仓库:
Git: Push。等效命令:
git push origin <branch-name>
从远程仓库获取并合并最新更改:
Git: Pull。等效命令:
git pull origin <branch-name>
同时执行拉取和推送,状态栏的循环箭头按钮一键完成。
仅下载远程仓库的最新信息,不自动合并:
git fetch origin
在 Source Control 面板中点击任意修改的文件,WebIDE 将打开 Diff Editor(差异编辑器),左右分栏显示:
通过编辑器右上角的切换按钮,可在 Side-by-Side(并排)和 Inline(内联)两种对比模式间切换。
通过命令面板执行 Git: Open Changes 可对比当前文件与任意历史提交的差异。
当 Pull 或 Merge 操作产生冲突时,WebIDE 提供可视化的冲突解决工具。
冲突文件中会出现标准的 Git 冲突标记:
<<<<<<< HEAD 当前分支的内容 ======= 传入分支的内容 >>>>>>> feature-branch
WebIDE 在冲突区域上方提供快捷操作按钮:
按钮 | 操作 |
|---|---|
Accept Current Change | 保留当前分支的内容。 |
Accept Incoming Change | 采用传入分支的内容。 |
Accept Both Changes | 同时保留两者。 |
Compare Changes | 打开三方对比视图。 |
+)。通过以下方式查看提交历史:
Git: View History... 菜单中选择 View History每个文件的 Timeline 面板按时间线展示该文件的所有历史版本,点击任意版本可查看当时的差异。
通过 Ctrl+Shift+P / Cmd+Shift+P 打开命令面板,输入 Git: 前缀可访问所有 Git 命令:
命令 | 说明 |
|---|---|
| 克隆远程仓库 |
| 初始化新仓库 |
| 切换分支 |
| 创建新分支 |
| 删除本地分支 |
| 合并分支 |
| 变基操作 |
| 拉取远程更改 |
| 推送本地提交 |
| 获取远程信息 |
| 储藏当前更改 |
| 恢复储藏的更改 |
| 丢弃工作区更改 |
| 添加远程仓库 |
| 移除远程仓库 |
WebIDE 集成了完整的终端(Terminal),可直接使用 git 命令行执行任何 Git 操作。
Ctrl+`` / Cmd+``对于面板不直接支持的高级操作,可通过终端完成:
# 交互式变基 git rebase -i HEAD~3 # Cherry-pick 提交 git cherry-pick <commit-hash> # 查看提交日志(图形化) git log --oneline --graph --all # 创建并切换到跟踪远程的本地分支 git checkout -b feature/xxx origin/feature/xxx # 重置到指定提交 git reset --hard <commit-hash> # 清理未跟踪文件 git clean -fd # 查看远程仓库信息 git remote -v # 设置上游分支 git branch --set-upstream-to=origin/<branch> <branch>
WebIDE 完整支持 .gitignore 文件:
对于数据开发项目,建议忽略以下内容:
# 运行产物 *.pyc __pycache__/ .ipynb_checkpoints/ # 临时文件 *.tmp *.swp .DS_Store # 输出目录 output/ results/ # 环境配置(含敏感信息) .env credentials/
1. 拉取最新代码 git pull 2. 创建功能分支 git checkout -b feature/xxx 3. 编辑文件 在 WebIDE 中编辑 4. 查看变更 Source Control 面板 5. 暂存更改 git add 6. 提交 git commit 7. 推送到远程 git push 8. 发起 Merge Request 在 Git 平台操作
1. Fetch 获取远程最新 git fetch 2. 查看远程分支变更 3. Pull 合并最新代码 git pull 4. 解决冲突(如有) Diff Editor 5. 继续本地开发 6. Push 推送 git push
建议 | 说明 |
|---|---|
频繁提交 | 每完成一个逻辑单元就提交,保持提交粒度合理。 |
有意义的提交消息 | 使用清晰的提交消息描述改动内容和原因。 |
拉取前先提交 | Pull 前确保本地更改已提交或 Stash,避免冲突混乱。 |
善用分支 | 每个功能/修复使用独立分支,避免在主分支直接开发。 |
定期同步 | 定期从主分支拉取更新,减少后续合并冲突。 |
使用 .gitignore | 避免将临时文件、运行产物、敏感信息纳入版本控制。 |
终端补充面板 | 面板不支持的复杂操作(rebase、cherry-pick)通过终端完成。 |
事项 | 说明 |
|---|---|
沙箱生命周期 | Git 操作依赖沙箱运行,沙箱超时回收后需重新启动。 |
凭据有效期 | Git Token 有过期时间,过期后需重新配置。 |
大文件处理 | 避免将大型数据文件纳入 Git,推荐使用 Git LFS 或存放到共享存储。 |
网络连接 | Push/Pull 操作需要沙箱能访问远程 Git 仓库。 |
个人目录隔离 | Git 仓库绑定在个人目录下,其他用户无法直接访问你的工作副本。 |