Skip to content

Latest commit

 

History

History
109 lines (68 loc) · 8.05 KB

git.md

File metadata and controls

109 lines (68 loc) · 8.05 KB

Git 版本管理

InkStream 提供 Git 界面,结合 libgit2 与系统 Git 完成本地和远程操作。打开仓库文件夹后,可在应用内提交、看历史、切分支、合并、变基和推拉远程。产生提交的操作使用系统 Git 签名配置,需先准备可用的签名密钥。

让工作区成为 git 工作区

git 功能只在「当前工作区是一个 git 仓库」时出现,否则相关入口自动隐藏或提示。

  • 用「打开文件夹」(Ctrl+Shift+O)打开一个本身就是 git 仓库的目录,应用会自动识别。
  • 如果你打开的子目录处在某个 git 仓库内部,顶部会出现引导条,询问「打开仓库根 还是 仅此文件夹」。选「打开仓库根」,整个仓库就会进入版本管理。
  • 识别成功后,左下角状态栏会显示当前分支名;有未提交改动时分支名旁会亮一个小圆点。

也可从「文件 → 克隆仓库…」或命令面板「克隆仓库…」开始:填写仓库 URL,选择父目录与新目录名。已有同名目录时不会开始克隆。对话框显示进度,支持取消和重试;完成后点击「打开工作区」才切换当前项目。克隆过程需要系统 Git,认证方式受下方远程设置约束。

左侧栏:源代码管理(日常提交)

侧边栏底部有一个可折叠的「源代码管理」区,用于日常提交,不必每次切到整页视图。

  • 顶部一行显示当前分支名和改动文件数;点标题可展开/折叠。
  • 改动文件列表用单字母标记状态:A 新增、M 修改、D 删除、R 重命名、U 未跟踪、! 冲突。
  • 在输入框写提交信息(建议 Conventional Commits 风格),点「提交」按钮提交全部改动;没有改动或信息为空时按钮不可点。
  • 同一行还有图标按钮:获取(fetch)、拉取(pull)、推送(push)、分支管理、打开 Git Graph。

打开 Git Graph 三栏视图

  • 快捷键:Ctrl+Shift+G。
  • 或点击左下角状态栏的分支名(再点一次回到编辑器)。
  • 或点侧栏「源代码管理」里的 Git Graph 图标。

非 git 工作区按 Ctrl+Shift+G 会提示「当前工作区不是 git 仓库」。

Git Graph 是中央区的整页视图,分三栏:

  • 左栏:提交图谱。顶部可切换「图谱 / 分支 / 分支比较 / 暂存记录 / PR / Issues」六个标签。
  • 中栏:选中提交的详情(信息、作者、时间、父提交、变更文件列表)。
  • 右栏:选中文件的 diff,右上角可切换「行」diff 与「句」(句级 prose)diff。

顶部工具条按钮:搜索提交、筛选分支、仓库设置、获取、拉取、推送、提交更改、暂存改动、刷新、关闭(回编辑器)。三栏分隔条可拖动调宽。

搜索与仓库设置

  • 搜索(工具条放大镜 / 图谱栏右上浮层):按提交信息、作者或哈希前缀匹配,命中项高亮;回车跳下一个、Shift+回车跳上一个、Esc 关闭。
  • 仓库设置(齿轮按钮):调整一次加载的提交数(100 / 500 / 1000),以及提交行日期格式(绝对 / 相对,如「3 天前」)。这些设置仅在本次会话生效。

提交、分支、合并、暂存

提交:在侧栏「源代码管理」直接提交,或点工具条「提交更改」弹出输入框填写提交信息。若仍有未解决的冲突文件,提交前会二次确认,提醒你先移除全部 <<<<<<< 冲突标记,避免把标记提交进历史。

分支管理(左栏切到「分支」标签,或侧栏分支图标):

  • 分组显示「当前分支 / 本地分支 / 远程分支」;当前分支卡片显示是否跟踪远程、领先/落后远程的提交数(↑/↓)。
  • 右上角「新建」在当前提交创建分支并切过去。
  • 把鼠标移到某分支上会出现操作按钮:切换到此分支、合并到当前分支、删除分支(远程分支不显示删除)。
  • 「将当前分支变基到此分支」或命令面板「本地变基…」启动本地变基。状态区提供继续、跳过当前提交、中止及停止正在执行的任务;停止进程不等同于中止整个变基序列。冲突解决后按提示继续,签名失败留下待提交结果时可「提交暂存结果并继续」。
  • 切换分支时若有未提交改动导致失败,应用会询问是否「丢弃改动并强制切换」(此操作不可恢复,会再次确认)。

合并:在分支列表点某分支的「合并到当前分支」。产生冲突时会弹出警告,点提示可打开三向解决器逐处采纳本方/对方,或在解决器内中止本次合并。

暂存(stash):工具条「暂存改动」会把当前改动(含未跟踪文件)暂存起来,可填一句备注。「暂存记录」页提供刷新、恢复并移除、删除记录。恢复失败或发生冲突时保留记录供后续处理;删除记录需要确认。

分支比较:打开「分支比较」标签可选择两个分支,固定提交后查看两侧完整正文,不切换工作树。操作说明见Prose Diff 与合并冲突。

提交右键菜单

在图谱栏的任意提交行上右键,弹出该提交的操作菜单:

  • 切换到此提交、在此创建分支、在此创建标签。
  • cherry-pick 到当前分支、撤销此提交(revert)。
  • 重置当前分支到此(子菜单:Soft 保留改动与暂存 / Mixed 保留改动清暂存 / Hard 丢弃所有改动)。
  • 复制提交哈希。
  • 如果该行携带分支或标签,菜单底部会出现对应子项:切换/合并/删除分支、删除标签。

危险操作(丢弃改动的切换、reset --hard、删分支、删标签、revert)都会先弹二次确认。

远程同步:获取 / 推送 / 拉取

工具条、侧栏「源代码管理」和分支管理的当前分支卡片,都提供获取 / 拉取 / 推送按钮(远程默认为 origin)。

  • 获取(fetch):更新远程跟踪信息,不改动你的工作区。
  • 推送(push):把当前分支推到远程同名分支。
  • 拉取(pull):可快进时自动快进;若本地与远程已分叉,会提示你手动合并或 rebase 后再推送。

远程操作进行中,工具条顶部会显示实时进度文案(如「推送中…」「获取:Receiving objects: 50%…」),期间相关按钮暂时禁用。

配置远程方式与 GitHub 登录

打开「设置」(Ctrl+,),在「Git」与「账户」分区配置如何与云端同步:

  • 仅本地:只在本机做版本管理,不连任何远程。
  • SSH:用 SSH 密钥与远程同步(推荐,支持 ed25519)。需先把公钥加入 GitHub 或你的服务器。
  • GitHub 登录:在「账户」分区用 PAT、现有 gh CLI 凭据,或已配置 Client ID 的设备授权登录。凭据保存在本机 OS 凭据库,只向通过准入检查的 GitHub HTTPS 目标提供认证;私有仓库需相应权限。详见GitHub 集成。
  • 自定义服务器:填写自建或第三方 git 服务器地址,只用于本次远程操作,不改写仓库的 remote 配置,也不向自定义地址发送 GitHub 令牌。

「账户」分区底部有「查看多设备同步教程」链接,提供图文同步指引。

SSH 签名(Verified)

InkStream 的提交、合并、cherry-pick、revert 使用系统 Git 的 -S 签名,遵循本机签名配置。GitHub 是否显示 Verified 还取决于签名密钥、账户关联和服务端校验,不能仅凭本地提交成功判定。

  • 请确保本机已配置 SSH 签名密钥,并把对应公钥作为「签名密钥」加入 GitHub。
  • 配好之后,应用内提交和你在终端手动签名的提交效果一样,不用再做别的设置。

注意事项

  • 所有 git 操作都以左下角状态栏的当前仓库为对象;非 git 工作区不会显示这些入口。
  • 进入或刷新 Git Graph 会同时刷新状态栏与图谱,因此你在终端等应用外做的改动也会被同步显示。
  • 涉及丢失数据的操作(强制切换、reset --hard、删除分支/标签、revert)都需二次确认,请看清提示再确认。

← 返回 功能文档总览