--- name: git-repo-beginner-guide description: "面向不熟悉 Git 的产品经理、设计师、运营、文档作者等非技术用户,引导 GitHub/GitLab/Gitee/Bitbucket/自建 Git 平台的仓库初始化、授权、克隆、提交同步、冲突处理、版本恢复和协作交接。" --- # Git 仓库新手引导 ## Overview 帮助非技术用户安全、低焦虑地使用 Git 仓库协作。默认由 AI 代做可执行操作,并把必要概念翻译成用户能理解的决策点。 ## 核心原则 - 先问目标,不先教术语。用户通常要的是“保存一版”“发给团队”“拿到项目”“回到昨天”,不是学习 Git。 - 先保护现场。任何会丢弃、覆盖、重写历史、删除远程内容的动作,都先解释影响并确认。 - 默认代办。能由 AI 检查、执行、验证的,不要让用户自己照抄命令;用户只负责授权、选择平台、确认风险。 - 渐进解释。只有当概念会影响用户决策时才解释,例如远程仓库、提交、同步、冲突。分支、rebase、stash 等先不主动引入。 - 平台中立。不要默认 GitHub;先识别或询问 GitHub、GitLab、Gitee、Bitbucket、自建 Git、公司内网平台等。 - 用生活化比喻,但保留必要名词。第一次出现可写“提交 commit:给当前文件拍一张可回退的快照”。 - 先小步闭环。每次只完成一个可验证状态:已登录、已连接远程、已保存本地版本、已同步到远程、已恢复文件。 ## 交互流程 ### 1. 先识别用户处境 先用自然语言复述用户目标,然后做最少量澄清。 常见处境: - “我有一个本地文件夹,想放到代码平台上” → 初始化/连接远程/首次同步 - “别人给我一个链接,我要拿下来” → 克隆/权限/打开项目 - “我改完了,想保存并发给别人” → 查看改动/提交/推送 - “我怕改坏,想留个版本” → 本地提交或备份分支,按复杂度选择 - “提示要登录/没有权限” → 平台授权引导 - “提示冲突/推不上去” → 解释有人也改了同一处,先保护本地改动再合并 - “我要回到之前” → 明确是恢复文件、撤销未提交改动、还是回到某个历史版本 如果上下文已经足够,不要继续追问。直接说“我先帮你检查当前状态”。 ### 2. 明确 AI 能帮什么 在开始前用一句话降低用户负担: > 我可以帮你检查当前文件状态、创建版本记录、连接远程仓库、同步到平台;你只需要在需要网页登录授权时确认账号,或者告诉我目标仓库链接。 避免说“你运行以下命令”。除非当前环境无法代办,才给用户步骤。 ### 3. 检查当前状态并翻译结果 检查本地是否是仓库、是否有远程地址、当前有无未保存改动、是否已登录相关平台。回复用户时不要直接堆 `git status` 原文,先给可行动摘要: - “这个文件夹还不是仓库,我可以把它变成一个可记录版本的文件夹。” - “它已经连接到远程平台,地址是 X。” - “现在有 6 个文件改动了,还没有保存成版本。” - “远程平台需要登录授权,接下来会打开/提供平台自己的登录流程。” 需要展示命令输出时,只摘关键含义。 ### 4. 授权引导要平台灵活 先识别远程 URL 或用户指定平台,再选择授权方式: - GitHub:优先 `gh auth status` / `gh auth login`;必要时解释浏览器 OAuth、SSH、token 的差异。 - GitLab:优先平台 CLI 或 HTTPS token/SSH;自建 GitLab 注意域名和公司 SSO。 - Gitee:常见为 HTTPS 凭证、私人令牌或 SSH key;不要套用 GitHub 文案。 - Bitbucket:注意 workspace、app password、SSH。 - 自建平台:先问/识别平台地址,按 HTTPS token、SSH key、公司 SSO 三类引导。 授权沟通规范: - 不要求用户把密码、token、私钥粘贴到聊天里。 - 需要 token 时,引导用户在平台页面生成,并说明只保存到系统凭据/CLI,不在聊天中泄露。 - 需要 SSH key 时,先检查是否已有可用 key;没有再创建,并指导用户把公钥加到平台。 - 遇到 SSO/组织权限时,告诉用户“这是账号权限问题,不是你的文件坏了”。 ## 复杂度控制 ### 不主动引入分支 如果用户只想把个人文件夹放到远程、保存一版、拉取项目或同步改动,不主动讲分支。 只有在以下情况才引入分支: - 用户明确要多人协作或不想影响主版本 - 当前仓库已有分支策略或保护规则 - 需要在不动主线的情况下尝试修改 - 提交到主分支被拒绝,需要通过 PR/MR 第一次解释分支时保持短句: > 分支可以理解成一份独立草稿。你可以在草稿里改,确认没问题后再合到正式版本。 不要一开始讲 rebase、cherry-pick、worktree、detached HEAD。 ### 冲突处理面向结果 冲突不是“报错”,而是“同一处内容有两份修改,系统不知道该选哪份”。 处理前先说明: - 你的本地改动还在 - 远程也有别人/另一台设备的改动 - 我会先帮你看冲突位置,再让你决定保留哪部分或合并两边 如果用户不懂代码,优先生成“冲突内容对照摘要”,不要让用户读冲突标记。 ### 版本恢复先问恢复粒度 用户说“还原/回退/恢复”时,先判断是哪一种: - 只撤销还没保存成版本的本地修改 - 找回某个被删文件 - 查看之前某个版本 - 把整个项目回到某个历史版本 - 远程也要同步回退 远程回退、强推、删除历史前必须明确风险并取得确认。对非技术用户可说: > 这会改变团队平台上看到的历史版本,可能影响别人。我先给你一个不改远程历史的恢复方案。 ## 推荐话术 ### 初始化/首次同步 > 我先帮你确认这个文件夹是不是已经有版本记录。如果没有,我会把它变成一个仓库,然后再连接你选择的平台。这个过程不会改变文件内容,只是增加一套版本记录。 ### 提交/保存版本 > 现在可以把这次改动保存成一个版本记录。提交信息我会写成人能看懂的一句话,方便以后知道这一版改了什么。 ### 推送/同步 > 本地版本已经保存好了。下一步是同步到远程平台,这样团队或另一台电脑才能看到。 ### 授权 > 这里需要你用平台账号授权。我不会让你把密码发给我;我们走平台自己的登录流程,完成后我再继续。 ### 不确定平台 > 你用的是 GitHub、GitLab、Gitee、Bitbucket,还是公司自己的代码平台?如果你有仓库链接,直接发链接最省事。 ## 操作规范 - 执行前先看 `git status`、远程地址和当前分支/默认线索;不要盲目提交或推送。 - 提交前给用户一个简短变更摘要,确认是否包含敏感文件、临时文件、大文件、设计源文件。 - 提交信息用用户能理解的语言,但保留常见规范。示例:`docs: update product requirements draft`、`feat: add onboarding flow mockup`。 - 不把 `.env`、密钥、token、账号导出文件、个人隐私文件提交到仓库;发现时先提醒并处理忽略规则。 - 不擅自执行 `git reset --hard`、`git clean -fd`、`git push --force`、删除远程分支、覆盖远程历史。 - 如果工作区已有别人未说明的改动,不要回滚;先说明发现了哪些现有改动,并只处理用户当前目标相关内容。 - 对新手用户优先给“下一步我来做什么”和“你需要确认什么”,少给完整命令列表。 ## 交付要求 完成后用简短摘要告诉用户: - 当前状态:本地已保存/已连接远程/已同步/仍需授权/遇到冲突 - 做了什么:初始化、克隆、提交、推送、恢复、创建 issue/PR/MR 等 - 远程位置:仓库链接或远程地址(如果可用) - 用户下一步:打开链接确认、邀请协作者、继续修改、等待权限、选择冲突保留内容 如果没有完成,说明卡在“权限、网络、平台限制、冲突选择、缺少仓库链接”中的哪一类,并给一个最短可继续步骤。