# 会话 Git 功能 在 **QiuYaTools → Git** 开启或关闭 Git 功能,默认开启。新会话会显示分支入口;当前目录不是 Git 仓库时显示“未检测到 Git 仓库”,目录或 Git 不可用时显示对应原因。Git 使用 Harness Host 上的目录与系统 Git;聊天的电脑操控环境是独立设置。 ## 分支与工作目录 新会话的模式选择旁显示当前分支。点击后先配置是否新建工作树,再点击“分支”搜索本地与远程分支;选择“新建分支…”后填写自定义名称和创建基点。首次任务开始后,分支绑定固定;停止任务、重新打开会话或重启应用不会解除锁定。外部工具改变实际分支时,界面提示分支不一致,恢复到绑定分支后才能继续。 功能启用前已存在的会话,在首次读取 Git 状态时按当前实际分支绑定并锁定,不推断过去启动时的分支。 默认使用当前目录,保留该目录现有修改。从当前提交新建分支可以保留修改;切换到另一个已有分支前需要处理未提交修改。其他会话正在使用同一工作树时,Git 写操作会被拒绝。 独立工作树从选定的已提交版本创建,用于同时开发不同分支。原目录的未提交修改不会自动复制过去。工作树会创建对应的新工作区和空白会话,迁移会在导航前核对草稿、附件、模型、模式和权限。宿主缺少必要能力、草稿含暂不支持的结构化指令或权限配置无法完整继承时,会保留原会话并说明原因。创建成功后若导航失败,可以重试打开已经准备的目录。 工作树和分支不会随会话归档自动删除。完成开发后,可以使用系统 Git 的 `worktree list` 检查并以 `worktree remove` 显式清理不再使用的干净工作树;有未提交修改时先保存修改。 ## 统计与对比 输入框下方显示 `+新增行 -删除行 n 个文件`。悬停显示仓库名以及逐文件的增删统计,鼠标可移入列表点击文件。点击统计直接打开右侧 Git 详情;点击文件定位到该文件,同一对比复用已有页签。 - **未提交改动**:当前提交到工作区的净差异,包含未跟踪文件,遵守 `.gitignore`。暂存与未暂存的行数不会直接相加。已经暂存、随后又在工作区还原的内容,可在“已暂存”视图查看。 - **已暂存/未暂存**:分别检查准备提交的内容与尚未暂存的内容。 - **分支对比**:目标分支与当前分支的共同祖先到当前提交的差异,不混入未提交修改。 右侧默认使用统一视图,可手动切换双栏对比,并提供文件树筛选、新旧行号、语法高亮和未修改上下文展开。二进制、子模块、文件属性变化和超出预览大小的文件均有专门说明;读取失败显示错误,不会显示成零改动。 ## 提交与远程操作 按文件或全部暂存/取消暂存,填写提交说明后提交暂存区。Fetch 获取远程状态,Push 推送当前分支并设置上游,Pull 仅允许快进。存在未提交修改、非快进更新、仓库锁、认证或钩子失败时,修改保留在原位置。 操作中断或超时后先刷新确认实际状态,再决定下一步。界面不会自动重发未知结果的写操作,也不会执行强制推送、重置或自动暂存 stash。 ## GitHub、GitLab 与 Gitee PR 在右侧 Git 面板展开 **PR / MR**,选择远程仓库并配置平台访问令牌。令牌保存在宿主凭据服务;客户端不持久化令牌,普通配置与会话记录也不保存令牌。 支持三家的公共站点。PR 来源为当前会话分支,创建前需要先推送到所选远程仓库。选择目标分支、填写标题和说明后创建,可创建草稿、查看已有 PR、编辑标题与说明,并跳转平台审查和合并。GitLab 显示为 MR。Gitee 的现有 PR 更新接口不支持修改目标分支,因此编辑时该项不可修改。 本地 Git 的 Fetch/Push/Pull 使用宿主现有 SSH 或 Git 凭据,与 PR 的 API 令牌分别配置。平台未提供的 CI 或审查状态显示为未知;未知不会被当成检查通过。创建请求发生不确定失败时,先查询远端已有 PR,避免重复创建。