源代码管理
在软件里完成日常 Git 操作:改动列表与 diff、暂存提交推送拉取、克隆、关联远端、冲突解决、检查点回退与 AI 改动审阅。
ChipCode 内置 Git 面板,日常的「查看改动 → 提交 → 推送」无需打开终端。左侧活动栏点源代码管理图标进入。
面板的几种状态
打开面板时先判断当前情况,再给出对应的出路:
| 状态 | 显示 | 能做什么 |
|---|---|---|
| 正在检查 | 「正在检查 git…」 | 稍等 |
| 没有打开项目 | 「还没有打开项目」 | 「打开项目…」「从 Git 克隆项目…」 |
| 未检测到 git | 安装指引 | 「重新检测」 |
| 打开的是普通目录 | 「这个项目还不是 git 仓库」(初始化不会改动现有文件) | 「在此初始化仓库」 |
| 正常仓库 | 分支头 + 操作区 | 全部操作 |
面板只作用于当前打开的项目。未打开项目时不会对工作空间执行任何 git 操作——工作空间是所有项目的容器,不能作为仓库使用。
打开的是仓库里的子目录时,面板会提示「仓库根是 X,你打开的 Y 只是它的一个目录」,并说明下面的操作作用于整个仓库。
改动列表与 diff
改动分四组:已暂存 / 未暂存 / 未跟踪 / 未合并(冲突)。同一个文件可以同时出现在已暂存和未暂存里。
| 操作 | 位置 | 说明 |
|---|---|---|
| 暂存 | 行尾「+」 | 未跟踪的文件同样可以逐个暂存 |
| 取消暂存 | 已暂存行尾「−」 | — |
| 全部暂存 / 全部取消暂存 | 分组标题 | 冲突文件不参与「全部暂存」 |
| 丢弃改动 | 未暂存行「↶」 | 会二次确认,不可撤销 |
| 看 diff | 点文件名 | 相对上次提交的变化;二进制文件不逐行显示 |
编辑器左侧的行标记会跟着标出改动行(可在「设置 → 开发 → 编辑器 → 行号旁显示 git 改动」里关闭)。
提交
- 提交框只能提交已暂存的内容,没暂存时输入框会提示「先在改动列表里暂存要提交的内容…」;
- 点「生成」可以让 AI 根据已暂存改动写一条提交信息(账号模式下会消耗积分);
- 提交完只是记到本机——要让别人看到还要点「推送」。
远端:获取、拉取、推送
| 按钮 | 实际行为 |
|---|---|
| 获取 | 只执行 git fetch,不改你的文件;会告诉你远端多了几个提交 |
| 拉取(n) | 执行 git pull --rebase,把远端更新接在你的改动下面 |
| 推送(n) | 推到远端;当前分支没有 upstream 时会自动 push -u |
| 创建 PR | 用「连接账号」里的令牌在托管平台建 PR |
推送失败时面板会按原因给不同出路:非快进 → 先拉取;认证失败 → 连接账号或检查本机凭据;被分支保护挡住 → 提示去看平台规则。
切换分支需要在终端完成:提交提示里会给出命令,执行
git switch <分支名>即可。
从 Git 克隆项目
两个入口:「文件 → 从 Git 克隆项目…」,或面板空状态里的「从 Git 克隆项目…」按钮。
- 填仓库地址(https / ssh 均可);
- 选「克隆到」的位置,文件夹名留空则按仓库名自动取;
- 克隆完成后自动打开项目。
地址里不要带用户名密码——面板会拒绝带凭据的 URL,改为用「连接账号」。
关联远端与令牌
- 没有远端时,远端栏会出现「关联远端」表单;支持 https、ssh 与本机目录。
- 令牌在「连接账号」里填写(Gitee 需要填用户名,GitHub / GitLab 可留空)。
- 令牌只保存在本机,走系统加密存储;界面只显示「已保存」,不会回显。
- 令牌用在两处:托管平台 API(建 PR、列 issue),以及该平台的 git 命令(克隆、拉取、推送)。
- 令牌不会出现在命令行参数、仓库地址或临时文件中;认证失败时会自动重试一次。
- 版本要求:面板最低 git 2.15,在 https 地址上使用令牌需要 git 2.31;未安装 git 时面板会给出安装指引,也可以在「设置 → 开发 → 版本控制」中指定可执行文件路径。
冲突与未完成的操作
遇到合并、变基、git am、cherry-pick、revert、bisect 时,面板顶部会出现横幅,写明当前处在哪种操作,并给出继续或放弃:
- 冲突文件逐块选择「我的 / 对方 / 两者都要」,再点「保存并标记为已解决」;
- 也可以「用 AI 合并这段冲突」,结果不满意可以「放弃 AI 结果,用我的逐处选择」。
⚠️ 变基时 git 会把两侧标反:
<<<<<<<开头的是远端/目标,>>>>>>>结尾的才是你自己的改动。面板会显示提示,并把「对方」按钮在这一阶段改叫「远端」,避免按字面点错丢自己的代码。
检查点:回到任意一回合之前
AI 每完成一个回合都会自动留一个检查点(内容没变则不建),面板里叫「历史检查点」。
- 点「回到这里」,先看到确认条:会改多少个文件、回退多少条对话;
- 确认后先恢复文件,成功后才回退对话——文件恢复失败则对话不动;
- 回退前会自动存一个「回退前自动保存」的撤销点,后悔了再退回即可。这类撤销点单独保留最近 20 条。
被 .gitignore 忽略的文件不在回退范围内。有未完成的分支操作(合并 / 变基等)时,回退会被拒绝,提示先完成或中止。
AI 改动审阅
AI 改过文件后,面板顶部出现「本轮 AI 改动」区块,活动栏图标带角标(角标数字是 AI 本轮改动的文件数)。
- 默认全部勾选;取消勾选的那一块会被撤回、不进入暂存;
- 「应用并暂存」把保留的改动写入磁盘并直接暂存;
- 下方会列出每个文件的结果:暂存了几处、撤回了几处、跳过了哪些块及原因。
当前目录不是仓库时,可以审阅但不能暂存——先初始化仓库。
常见问题
Q:没装 Git 能用吗? 其他功能不受影响。面板会给出安装指引(软件不捆绑 git,也不会自动下载),装好后点「重新检测」。
Q:git status 里有文件,面板里却没有?
面板只显示当前打开项目所在仓库的内容;窗口重新获得焦点时会自动刷新,也可以点顶部「刷新」。
Q:提交信息写错了怎么办?
面板不提供 amend;在终端 git commit --amend 后再用面板推送。
Q:能同时管理多个仓库吗? 面板一次只管当前项目的仓库,切换项目即切换仓库。