中山大学岭南学院 · 金融 AI 智能体设计与应用 · 学员实操页第 7 次课 · 10 月 28 日
第 7 次课 · 学员实操页

版本控制与团队协作

练习一 装 Git,本机存三版、比一次、退一次,再 Fork 老师的仓库发一个 Pull Request。
练习二 组长建小组仓库,每人一条分支改网页的一段,合回主线,部署到 show.lingnan.top。
练习三 全班在一份腾讯文档里同时写,查修订记录,再让 Claude Code 把本组那段填进网页。
GitHub 和 Gitee 做法不同的步骤分左右两栏,选一栏照做。
第 7 次课 · 材料包按练习分好的四个文件夹,加一份 操作指南.md。练习二的文件夹就是小组仓库的起点 下载 ⬇

练习一 · 装 Git,学会基本用法,加入老师的仓库

目的在自己电脑上把存一版、比差别、退回去各做一遍,再走一次 Fork 加 Pull Request,把改动交进别人的仓库。

验收标准 · 五条

  • 装好了。git --version 报得出版本号,邮箱和 init.defaultBranch main 两条配置敲过。
  • 有副本。自己 GitHub 或 Gitee 账号下有一份 mf-test,本机克隆的是它。git remote -v 的地址里是你自己的账号,不是老师的。
  • 在分支上。改动提交在 stu/<用户名> 上,只动了 demo1/index.html 标了「改这里」的五处。
  • 发了 PR。zhangyf29/mf-test 的 Pull Requests 里有你的一条(GitHub · Gitee),标题「第 N 组 · 昵称」。
  • 念得出。git log --oneline -3 最上面是自己的提交,说得出每条改了什么。

第一步 装 Git,配五条

在 VS Code 里开终端(终端 → 新建终端),先看装没装。

git --version

报「不是内部或外部命令」的,到 git-scm.com 的 Windows 下载页装一个。向导里默认编辑器选 Visual Studio Code,PATH 那页选 Git from the command line and also from 3rd-party software,其余默认。装完关掉所有终端,重开再试。

git config --global init.defaultBranch main
git config --global core.quotepath false
git config --global core.autocrlf true

下面两条换成你自己的,一条一条敲。名字写昵称,公开仓库上谁都看得到。邮箱用注册 GitHub 或 Gitee 的那个。

git config --global user.name "你的昵称"
git config --global user.email "你注册 GitHub 或 Gitee 的邮箱"

配完跑 git config --global --list,五项都在就对了。漏了哪条会报什么错,见排错。

第二步 本机存三版、比一次、退一次

在「文档」里建 第7次课\git练习 这个空文件夹,别建在别的仓库里面。VS Code 打开它,终端输 claude,四段依次发。改仓库的命令它会先问你,看清再允许。

这个文件夹是我练 Git 用的,现在是空的。
1. 新建 第7次课笔记.md,写三行:第一行标题「第 7 次课 · 版本控制」,第二行「今天要学会:存一版、比差别、退回去」,第三行「我最常丢版本的场景:(留空,我待会自己填)」。
2. 把这个文件夹用 Git 管起来,跑 git status 给我看会记进去哪些文件。
3. 提交一次,备注写「第一版:建笔记」。
4. 跑 git log --oneline,把结果原样给我看。

发第 2 段之前,自己把笔记第三行括号里的字换成你的一句话,保存。

1. 我刚改了第三行,把这处改动提交,备注写「第二版:填上我最常丢版本的场景」。
2. 在文件末尾加一行「Git 五条配置已配好」,提交,备注写「第三版:记下配置完成」。
3. 跑 git log --oneline,应该有三行,原样给我看。
跑 git diff HEAD~2 HEAD,把输出原样贴给我。
然后用两句话告诉我:哪一行是删掉的,哪一行是新加的;@@ 后面那串数字说的是什么位置。不要改任何文件。

读 diff 记三条。减号开头是删掉的,加号开头是新加的,@@ 后面是这一处在第几行。

1. 把笔记标题改成一串乱码,先不提交,跑 git status 给我看。
2. 把这次没提交的改动丢掉,恢复到上一次提交的样子。用 git restore,先告诉我命令再跑。
3. 再撤销最近一次提交,保留记录,用 git revert --no-edit HEAD。先告诉我会发生什么,等我同意再跑。
4. 跑 git log --oneline,原样给我看。
不要用 git reset --hard。

做完历史多一条 Revert "第三版:记下配置完成",第三版还在。它要是提议 git reset --hard,直接拒绝,那条会连改动一起删掉。

第三步 在 VS Code 里看同一串历史

  1. 源代码管理面板(Ctrl+Shift+G)。下半部分的图表视图里一个圆点一次提交。点第二版那一行,再点文件名,右边左旧右新对照
  2. 时间线。资源管理器里选中 第7次课笔记.md,左下角时间线列出它的每一次提交
  3. 装 Git Graph。Ctrl+Shift+X 搜 Git Graph(作者 mhutchie)安装,点状态栏上的 Git Graph 打开分支图。练习二分支多了用得上,装不上也不影响往下做

面板上的提交、放弃更改按钮这节课不点,改动交给 Claude Code,你审批。

第四步 Fork 老师的仓库,发一个 Pull Request

你没有权限直接推进老师的仓库,所以先 Fork 一份到自己账号下,改完发 Pull Request 请老师合回去。仓库公开,名片上只写昵称,不写学号、手机号、全名。还没有账号的先注册,邮箱验证只能你自己来。

第 03 步在 第7次课 这一层文件夹里做,不要在 git练习 里面克隆。VS Code 打开 第7次课,启动 claude。

用 GitHub默认走这一栏
用 GiteeGitHub 打不开或很慢,选这一栏
01网页 · 你点Fork。登录后打开 github.com/zhangyf29/mf-test,右上角点 Fork,再点 Create fork。
01网页 · 你点Fork。登录后打开 gitee.com/zhangyf29/mf-test,右上角点 Fork,选自己的账号,确认。
02你自己准备登录。不用提前准备。第一次推送时浏览器弹出 GitHub 登录,你自己点授权。
02你自己准备登录。VS Code 自带的账号登录只认 GitHub。Gitee 第一次推送时由 Git 弹窗,用户名填 Gitee 账号,密码栏填登录密码或私人令牌。推荐令牌,在 gitee.com/profile/personal_access_tokens 生成,开了双因素认证的只能用令牌。凭据管理器按网站分别记住,和 GitHub 的登录可以并存。
03Claude Code克隆、改五处、推送。尖括号连同里面的字换成你的,整段发。
帮我做 Git 练习一,每做完一步告诉我结果。出错就停下,把报错原文给我看,不要自己换办法绕过去。
1. 把 https://github.com/<我的GitHub用户名>/mf-test 克隆到当前文件夹,进到 mf-test 里,跑 git remote -v 给我看。
2. 开一条分支 stu/<我的GitHub用户名>,切过去。
3. 打开 demo1/index.html,只改标了「改这里」的五处,别处一个字不动。
   ① 组号写「第 <N> 组」,昵称写「<我的昵称>」
   ② 一句话写「<我最想让智能体替我做的一件事>」
   ③ 三张卡片写 <三件事>,每张一个四到八字的名字,加一句交给它什么、要它交回什么
   ④ 主题色换成 <色号,比如 #1F6F5C>
   ⑤ 更新日期写今天
4. 用 git diff 给我看改了哪几行,等我说可以再提交,备注写「demo1:填昵称、一句话、三张卡片和主题色」。
5. 推到 origin 的 stu/<我的GitHub用户名> 分支。弹出浏览器登录时告诉我,我自己登录。
6. 跑 git log --oneline -3 给我看。
03Claude Code克隆、改五处、推送。尖括号连同里面的字换成你的,整段发。
帮我做 Git 练习一,每做完一步告诉我结果。出错就停下,把报错原文给我看,不要自己换办法绕过去。
1. 把 https://gitee.com/<我的Gitee账号>/mf-test 克隆到当前文件夹,进到 mf-test 里,跑 git remote -v 给我看。
2. 开一条分支 stu/<我的Gitee账号>,切过去。
3. 打开 demo1/index.html,只改标了「改这里」的五处,别处一个字不动。
   ① 组号写「第 <N> 组」,昵称写「<我的昵称>」
   ② 一句话写「<我最想让智能体替我做的一件事>」
   ③ 三张卡片写 <三件事>,每张一个四到八字的名字,加一句交给它什么、要它交回什么
   ④ 主题色换成 <色号,比如 #1F6F5C>
   ⑤ 更新日期写今天
4. 用 git diff 给我看改了哪几行,等我说可以再提交,备注写「demo1:填昵称、一句话、三张卡片和主题色」。
5. 推到 origin 的 stu/<我的Gitee账号> 分支。弹出用户名和密码框时告诉我,我自己填。
6. 跑 git log --oneline -3 给我看。
04网页 · 你点发 Pull Request。先用浏览器打开本机的 mf-test/demo1/index.html 核一遍五处。回自己 Fork 的网页,点黄条上的 Compare & pull request,没有黄条就点 Contribute 再点 Open pull request。核对左边是 zhangyf29/mf-test 的 main,右边是你的 stu/ 分支,标题写「第 N 组 · 昵称」,点 Create pull request。
04网页 · 你点发 Pull Request。先用浏览器打开本机的 mf-test/demo1/index.html 核一遍五处。回自己 Fork 的仓库页,在 Pull Requests 里新建一个。核对目标是 zhangyf29/mf-test 的 main,源是你的 stu/ 分支,标题写「第 N 组 · 昵称」,提交。
账号、密码、令牌不交给 AI 网页登录、弹窗里的用户名和令牌都自己填。说给它就进了会话记录,会话记录是要交的。
PR 显示有冲突,不用管 老师会当场合两三个,第二个和第一个改的是同一行,必然冲突。这就是练习二要分段分工的原因。

课后想补背景,先看 廖雪峰 Git 教程,零基础能读,有使用 GitHub、使用 Gitee 两节。想系统看读 Pro Git 中文版。

练习二 · 给小组建仓库,再把网页部署上线

目的几个人同时改一份东西,靠分支各走各的,靠合并请求互相复核,最后放到公网上。终期项目走的是同一条路。

验收标准 · 仓库五条,上线四条

全组一起核,材料包 04_评分清单/ 里有同样的单子。仓库五条在第 6 步之后核。

  • 仓库在。小组仓库是私有的,组员登录后打得开,里面至少两条提交。
  • 人都在。组员都接受了邀请,每个人都推过东西。
  • 每人一条分支。名字形如 feature/zhangsan,都推上去了,都经合并请求合进 main。
  • 合上了。main 上的 index.html 里,每人那一段都是改过的内容,没有一段被覆盖。
  • 念得出。git log --oneline 从上往下念,每行说得出谁改了什么,没有「修改」「更新」这种备注。

上线四条在第 7 步之后核。

  • 换台设备打得开。手机关掉无线网用流量,打开本组网址,输班级密码,页面出来,不是白屏或 404。
  • 线上和 main 一致。网址上的四段和 main 上的 index.html 一样,不是空白模板。
  • 作品列表上有名。show.lingnan.top 进「金融AI智能体设计与应用」,输班级密码,看得到本组项目名和一句话简介。
  • 没带出令牌。上传的压缩包里没有 .env,仓库、截图、会话记录里找不到 show_ 令牌和 sk- 密钥。

开工前 全组定四件事

定什么怎么定
用哪个平台GitHub 打得开、推送不卡就用 GitHub。打不开或很慢,整组用 Gitee。全组用同一个
仓库叫什么用项目名,只用英文字母、数字和横线,比如 mf-07-industry-report
谁建仓库组长在网页上建,建成私有,再把组员加成协作者。页脚有组员姓名,不放公开仓库
各改哪一段照 分工说明.md 认领导航条、标题与简介、三张卡片、页脚。五人组第五人负责复核和部署

每段写你们组终期项目的真内容。练习三会把本组那段在腾讯文档里写完整,再填回这张网页。

第 1 步 组长把文件夹管起来

把材料包的 02_练习二_小组仓库与上线/ 复制到 第7次课 下,改名成仓库名。VS Code 打开它,启动 claude,发这段。

这是我们组练习二的网页项目。
1. 先读 .gitignore,告诉我它挡住了哪些文件。
2. 把这个文件夹用 Git 管起来,跑 git status 给我看会记进去哪些文件。如果里面有 .env,停下来告诉我。
3. 提交一次,备注写「四段空白页:练习二起点」。
4. 确认当前分支叫 main,跑 git log --oneline 给我看。

第 2 步 建远端仓库,拉组员进来

用 GitHub默认走这一栏
用 GiteeGitHub 打不开或很慢,整组选这一栏
01组长 · 网页建空仓库。在 github.com 右上角点 +,选 New repository。名字填仓库名,选 Private,README、.gitignore、license 一个都不加,点 Create repository,复制仓库地址。
01组长 · 网页建空仓库。在 gitee.com 新建仓库。名字填仓库名,选私有,初始化之类的选项一个都不勾,创建后复制 HTTPS 地址。
02每个人准备登录。不用提前准备。推送和克隆时浏览器弹出 GitHub 登录,各自点授权。
02每个人准备登录。推送和克隆时 Git 弹出用户名和密码框,用户名填 Gitee 账号,密码栏填登录密码或私人令牌。推荐令牌,在 gitee.com/profile/personal_access_tokens 生成。
03组长 · Claude Code推上去。
把本地仓库推到 <仓库地址,形如 https://github.com/用户名/仓库名.git>,远端名字叫 origin,推 main 分支。
推之前把要跑的命令列给我看。弹出浏览器登录时告诉我,我自己登录。推完跑 git status -sb 给我看。
03组长 · Claude Code推上去。
把本地仓库推到 <仓库地址,形如 https://gitee.com/账号/仓库名.git>,远端名字叫 origin,推 main 分支。
推之前把要跑的命令列给我看。弹出用户名和密码框时告诉我,我自己填。推完跑 git status -sb 给我看。
04组长 · 网页加组员。仓库页点 Settings,左栏点 Collaborators,再点 Add people,输组员的 GitHub 用户名,逐个加。
04组长 · 网页加组员。仓库主页 → 管理 → 仓库设置 → 仓库成员管理 → 添加仓库成员,搜组员的 Gitee 个性地址或邮箱,角色选开发者。个人账号名下私有仓库的协作者合计最多 5 人,组长别的私有仓库的也算在内。
05组员 · 网页接受邀请。点邀请邮件里的接受。没收到邮件就打开 github.com/<组长用户名>/<仓库名>/invitations。接受之前克隆不了。
05组员 · 网页接受邀请。登录 Gitee 接受组长的邀请,接受之前克隆不了。找不到邀请的,组长在同一页改用链接邀请,角色选开发者,把链接发到群里。
06组员 · Claude Code克隆。在 第7次课 里启动 claude,发这段。
把 <组长给的仓库地址> 克隆到当前文件夹,进到这个文件夹里。弹出浏览器登录时告诉我,我自己登录。
克隆完跑 git remote -v 和 git log --oneline,原样给我看。
06组员 · Claude Code克隆。在 第7次课 里启动 claude,发这段。
把 <组长给的仓库地址> 克隆到当前文件夹,进到这个文件夹里。弹出用户名和密码框时告诉我,我自己填。
克隆完跑 git remote -v 和 git log --oneline,原样给我看。

从这里到第 6 步,两个平台的提示词一样。登录和令牌自己填,不说给 AI。

第 3 步 认领一段

每人用 VS Code 打开克隆下来的文件夹,重新启动 claude,看清四段在哪,再在组里说谁认哪段。

打开 index.html,这一步不要改任何文件。
1. 告诉我四段各在第几行到第几行:① 导航条、② 标题与简介、③ 三张卡片、④ 页脚。
2. 读一遍 分工说明.md,告诉我每一段要写什么。
3. 我认领的是「<① 导航条 / ② 标题与简介 / ③ 三张卡片 / ④ 页脚,四选一>」,把这一段的原文贴给我。

第 4 步 各开 feature/拼音,只改自己那一段

1. 开一条新分支 feature/<我的名字拼音>,切过去。
2. 打开 index.html,只改「<我认领的那一段>」,别的地方一个字不动,样式表也不动。
   要写的内容:<把你那一段的文字写在这里>
3. 用 git diff 给我看改了哪几行,等我说可以再提交。
4. 提交,备注写清改了哪一段、改成了什么,比如「导航条:换成组名与三个栏目」。
5. 推到 origin 的 feature/<我的名字拼音> 分支,推完把 git log --oneline -3 给我看。

看 diff 时确认改动只落在自己那段的注释框里,再让它提交。别让它重排整页,那样每条分支都撞在一起。

第 5 步 发 Pull Request,换人复核后合并

用 GitHub第 2 步选了 GitHub 的
用 Gitee第 2 步选了 Gitee 的
01发的人 · 网页发 PR。推完回仓库网页,点黄条上的 Compare & pull request,没有黄条就进 Pull requests 点 New pull request。左边 main,右边自己的 feature/ 分支,标题写改了哪一段,点 Create pull request。
01发的人 · 网页发 PR。推完回仓库页,在 Pull Requests 里新建一个。源分支选自己的 feature/ 分支,目标分支选 main,标题写改了哪一段,提交。
02复核的人 · 网页复核后合并。换一个组员点 Files changed,确认只动了那一段,再点 Merge pull request 和 Confirm merge。不要自己合自己的。
02复核的人 · 网页复核后合并。换一个组员打开这条 Pull Request 看改动的文件,确认只动了那一段,再合并。不要自己合自己的。

复核时可以让 Claude Code 帮你比。PR 提示有冲突,发 PR 的人发第二段。两段两个平台一样。

帮我复核一条合并请求,只看不改。
1. 跑 git fetch origin,再跑 git diff origin/main...origin/feature/<他的名字拼音>,把输出原样给我看。
2. 告诉我改了哪几行,是不是只落在「<他认领的那一段>」的注释框里,有没有动样式表和别人的段落。
我的合并请求提示有冲突。
1. 切到我的分支 feature/<我的名字拼音>,跑 git fetch origin,把 origin/main 合进来。
2. 冲突的地方把两边原文摆给我看,说清两边各想做什么。等我决定留什么再改,只改冲突标记圈住的那几行,不要整份文件取一边,不要 git merge --abort。
3. 我确认后提交,推到我的分支,再告诉我 PR 页面上冲突提示还在不在。
撞车了正好 两人改到同一行,Git 停下来问人。多数时候是把两边整合,不是二选一。它报退出码 1 是正常的冲突状态,不是出错。

第 6 步 拉下来,把历史念一遍

切回 main,从 origin 拉最新的。
然后用浏览器打开 index.html 给我看,告诉我四段各是谁改的。
最后跑 git log --oneline --graph -15,用中文一行一句说明每一步改了什么。

从上往下念,念不出的是备注写成了「修改」「更新」。同时开 Git Graph 看每条分支从哪分出、在哪合回。到这里核仓库五条。

第 7 步 部署到 show.lingnan.top

仓库私有,组外看不到。这一步给每组一个固定网址,打开先输班级密码。一个人操作,其余人围着看。

  1. 拿三样东西。作业平台的「我的小组」页有本组网址(形如 mf07.show.lingnan.top)、show_ 开头的令牌、班级密码。令牌只能部署本组作品,不发给别组,泄露了找老师重置
  2. 确认在合好的 main 上,把下面这段发给它,令牌、项目名、简介换成你们组的
  3. 看它跑。它会写 deploy.json、打包、上传、查状态,失败了自己读记录改了重传。到 ok 以后换设备核上线四条,再让它把 deploy.json 提交推到 main
按 https://show.lingnan.top/docs 这份说明,把当前项目部署上去。

令牌:show_xxxxxxxx
项目名:(写本组项目名,40 字内)
一句话简介:(200 字内)

这是纯静态网页,没有后端,不用设密钥。
令牌只在这次对话里用,不要写进项目里的任何文件,回复里也不要整串重复。打包时不要带 .git 和 .env,打包后先把压缩包里的文件清单列给我看。
部署成功后用 /api/profile 填项目名和简介,再自己验一遍:登录班级密码、打开首页、四段都在。
部署记录里有报错,你自己读、自己改、重新传,改了几轮还不行就停下来告诉我卡在哪。
最后把网址和验收结果告诉我。

纯静态网页的 deploy.json 只有一行 {"type": "static", "root": "."}。纯静态网页里放不了密钥,以后要调大模型得改成 Python 后端。不想让它敲命令,就在 show.lingnan.top/upload 网页上传。

这段对话里有令牌和班级密码 截图、分享、交会话记录之前,把两样都遮掉。

第 8 步 改一处,再上线一次

挑一个组员在自己的分支上再改一句,照第 4、5 步走一遍。部署的人接着同一个会话发下面这段,刷新网址看到新句子,这条路才算走通。

main 上有新合进来的提交。切到 main 拉最新,按刚才的做法重新打包部署,状态到 ok 以后告诉我这次比上次多了哪一处改动。

练习三 · 一份文字稿,全班同时写

目的文字也可以只有一个源头,谁改了什么有记录,改坏了找得回来,和 Git 一个道理。全班写同一份腾讯文档,每组一段,再让 Claude Code 把本组那段填进练习二的网页。

验收标准 · 五条

全组一起核,同一张单子在材料包 04_评分清单/文档协作评分清单.md。

  • 四个小标题都有人写。本组那段的四个小标题各有人认领、写完,不是一个人包了。
  • 指得出谁改的。在修订记录里指得出本组那段某一处是谁、什么时候改的。
  • 恢复过一次误改。有人改了队友小标题下的一句,全组从修订记录里找到原句,抄了回去。
  • 读回来,用进网页。Claude Code 经 MCP 或退路读回本组那段,说得出每句出自哪个小标题,填进网页、合进 main、重新部署后网址上看得到。
  • 令牌不外露。仓库、会话记录、截图里都没有令牌,.env 被 .gitignore 挡住。

第一段 打开文档,认领小标题

《第7次课·练习三·各组项目说明》的二维码
第7次课 · 练习三 · 各组项目说明 docs.qq.com/doc/DZVZNWVpXUUd5ZmtW 手机扫码,或在电脑上点链接。用 QQ 或微信登录后才能改。
  1. 用自己的 QQ 或微信登录。不登录只能看,修订记录上也认不出是你
  2. 读文档顶部的「先读这四条」,在签到区写上组号和昵称
  3. 找到本组那段,每人认领一个小标题,写上昵称。三人组组长多认一个,五人组第五人负责最后核对
小标题写什么,写多长填进网页哪里
项目名与一句话简介项目名 12 字以内;一句话 30 字以内,说清做出来是个什么东西① 导航条左边的项目名,② 大标题
给谁看、解决什么两三句,100 字以内。谁会用,卡在哪一步,你们替他省掉哪一步② 大标题下面的简介
三个数及出处三个带单位的真数,各配 12 字以内的说明。出处写来源全称加日期③ 三张卡片;出处进 ④ 页脚
组员分工一人一行,昵称或姓名加一句分工,不写学号④ 页脚的组员

写终期项目的真东西,不编公司。格式样例在材料包 03_练习三_腾讯文档/项目说明模板.md。

第二段 同时写,只写自己那一格

一起开写。只改本组那段里自己认领的小标题,别组的段落一个字都不碰。

没有冲突提示 两人同时改同一句,后改的直接盖掉先改的,不会像 Git 那样停下来问。所以先分好格,再动手。

第三段 故意改错一句,从修订记录里找回来

  1. 四个小标题写完,全组停笔。指定一个人改队友小标题下的一句,比如改一个数,不说改了哪句
  2. 打开修订记录。电脑上点文档右上角的 ≡,选 查看修订记录;老版界面在菜单栏 文档操作 → 查看修订记录
  3. 按时间往前翻,全组说出改的是哪句、谁改的、什么时候改的、原句是什么
  4. 照历史版本把原句抄回去,四个小标题再核一遍
这份文档里不要点还原 还原是整份退回你选的那一版,全班 21 个组在那之后写的都会没了。这一步只看、只抄,像 Git 里撤回自己那一次提交,不是把大家共用的 main 整个退回去。想试还原,自己新建一份文档试。

第四段 接上腾讯文档 MCP

每组至少一人做通,最好是练习二负责部署的那位。命令在 VS Code 的终端里跑,不发给 Claude Code。

  1. 领令牌。打开 docs.qq.com/open/auth/mcp.html,它会跳到标题为「欢迎使用腾讯文档Skill」的页面。用 QQ 或微信登录,照提示取得令牌,复制下来
  2. 登记到本机。跑下面这条,把「你的令牌」换成刚复制的那串
claude mcp add --transport http -s user tencent-docs https://docs.qq.com/openapi/mcp --header "Authorization: 你的令牌"
  1. 检查。跑 claude mcp list,看到 tencent-docs: https://docs.qq.com/openapi/mcp (HTTP) - ✔ Connected 就接上了。第一次报 Request timed out 的再跑一次
  2. 重开 Claude Code。在小组项目根目录启动 claude,输 /mcp 看得到 tencent-docs

-s user 把配置写进本机的用户配置。令牌只出现在这条命令里,不进仓库,也别贴进对话框,会话记录是要交的。

第五段 让 Claude Code 读回本组那一段

确认 tencent-docs 连接器能用。不用列全部工具,只告诉我两件事:
有没有 get_content 这个工具;有没有能查文档最后修改时间的工具,有的话叫什么。
这一步只看,不调用任何会新建、修改、删除文档的工具。
令牌已经配好,不要问我要,也不要打开 .env。
用 tencent-docs 的 get_content 读这份腾讯文档,file_id 填 DZVZNWVpXUUd5ZmtW。
它是链接 https://docs.qq.com/doc/DZVZNWVpXUUd5ZmtW 里 /doc/ 后面那一串,填整条链接会报 invalid file_id。

这份文档全班 21 个组都在写,只取「第【N】组」那一段,别的组一个字都不要。
1. 按四个小标题逐个复述:先写小标题名,再把它下面的原文照抄,不改写、不补充、不润色。
   四个小标题是:项目名与一句话简介;给谁看、解决什么;三个数及出处;组员分工。
2. 哪个小标题下面空着,或者还留着下划线和填写说明,就直说没写完,不要替我编。
3. 再查一次这份文档的最后修改时间和最后修改人,换成北京时间告诉我。查不到就说查不到。
4. 不要改这份文档的任何一个字。

读回来后回文档对一遍。对不上的,先分清是它抄错了,还是有人刚改过。

第六段 填进网页,合并,重新部署

接着同一个会话,在小组仓库根目录做,走的是练习二那条路。

先切回 main,从 origin 拉最新的,再开一条分支 feature/shuoming,切过去。

把刚才读到的第【N】组那一段填进 index.html,对应关系:
- 「项目名与一句话简介」的项目名 → <!-- ① 导航条 --> 左边的 <b>,导航条右边不动
- 「项目名与一句话简介」的一句话简介 → <!-- ② 标题与简介 --> 的 <h1>
- 「给谁看、解决什么」 → <!-- ② 标题与简介 --> 的 <p>
- 「三个数及出处」的三个数和说明 → <!-- ③ 三张卡片 --> 三张卡片的 .v 和 .l,顺序照文字稿
- 「三个数及出处」的出处、「组员分工」的组员 → <!-- ④ 页脚 -->,写成「本组成员:…… · 数据来源:……」

规矩:
1. 只换这四段里的文字。<style>、标签结构、类名一个都不动。
2. 文字照文字稿,不改写。放不下的先告诉我,别自己删。
3. 改完用 git diff 给我看改了哪几行,等我说可以再提交。
4. 提交时只提交 index.html。备注写「四段文字取自腾讯文档《第7次课·练习三·各组项目说明》第【N】组」,再加上刚才查到的最后修改时间。
5. 提交前跑 git status 给我看。.env 或 项目说明.md 出现在待提交的文件里,就停下来告诉我。
  1. 看 diff,改动只落在四个注释框里的文字上,再让它提交
  2. 让它把 feature/shuoming 推上去,发合并请求,找组里另一个人复核后合进 main
  3. 部署的人回练习二部署用的那个会话,发下面这段。会话关了的,重发练习二第 7 步的部署指令,令牌自己填
main 上有新合进来的提交。切到 main 拉最新,按刚才的做法重新打包部署。
状态到 ok 以后,告诉我这次比上次多了哪几处改动。

部署完换台设备打开本组网址,四段应该和文档里本组那段一样。再回文档改一个字,刷新网站,网站不会变。文字的源头在文档,网页的源头在仓库,中间靠刚才那一步搬过去。

MCP 用不了的退路

腾讯文档 MCP 有两百多个工具。走 DeepSeek 时可能每轮都把全部说明发一遍,变慢甚至报错。碰上这种情况,或者一直连不上,换下面两条路之一,验收照样算过。

退路一 · 用脚本读成本地文件。小组项目根目录有 读腾讯文档.py。把 .env.example 复制成 .env,令牌填在 TENCENT_DOCS_TOKEN= 后面,再自己在终端里跑这一条,令牌不经过 Claude Code。

python 读腾讯文档.py https://docs.qq.com/doc/DZVZNWVpXUUd5ZmtW --out 项目说明.md

退路二 · 令牌也领不到。在浏览器里选中本组那段复制,粘进项目根目录新建的 项目说明.md。文档整个打不开的,照 项目说明模板.md 在本地写。

腾讯文档的连接器今天不用,改读本地文件。
读项目根目录的 项目说明.md,这是【几点几分】从腾讯文档《第7次课·练习三·各组项目说明》取下来的。
只取「第【N】组」那一段,按四个小标题逐个复述原文,不改写、不补充。空着的直说没写完。
不要打开 .env。项目说明.md 不提交,文字的源头仍是腾讯文档那一份。

本地这份是取下来那一刻的样子,之后文档里的改动要重跑脚本或重新复制。

和 Git 对一对

Git腾讯文档差在哪
一次提交自动保存的一个版本Git 要你说存才存,文档改一下就自动存,也没有备注
git log修订记录都按时间列出谁什么时候改过
git revert照历史版本把原句抄回去只动出错的那一处,别人后来的改动都在
git reset --hard 再强推还原整份退回那一版,之后所有人的改动一起没了
分支与冲突没有分支,实时同步大家直接改同一份,撞上了后改的盖掉先改的

几个人一起想清楚的文字放腾讯文档,要上线、要逐行复核的代码放 Git。

练习三排错

现象多半是怎么办
文档打得开,改不了没登录,或者登录前就打开了右上角用 QQ 或微信登录,刷新再改
找不到「查看修订记录」界面版本不同;官方帮助写的是文档创建者能查看先找右上角的 ≡,再找菜单栏「文档操作」。都没有,请老师投屏打开修订记录
有人点了还原,别组写的不见了还原是整份退回马上告诉老师,别再动文档
claude mcp list 报 Request timed out工具列表大,第一次拉取超时再跑一次。连着几次都超时,走退路一
claude mcp list 里没有 tencent-docs命令发进了 Claude Code 对话框,没在终端里跑;或者跑时报了错在 VS Code 的终端里重跑 claude mcp add,看清有没有报错
命令跑过了,/mcp 里看不到Claude Code 没重开输 /exit,在小组项目根目录重新输 claude
/mcp 里 tencent-docs 显示失败,或问要不要启用项目里的服务器项目根目录留着旧的 .mcp.json,盖过了刚登记的那条让 Claude Code 把它改名成 .mcp.json.旧,重开再看
读文档报鉴权失败,错误码 400006令牌没复制全、过期了,或者是别人的重新领令牌,先跑 claude mcp remove tencent-docs -s user,再重跑 claude mcp add
读文档报 invalid file_idfile_id 填成了整条链接只填 DZVZNWVpXUUd5ZmtW
读文档说没有权限领令牌的账号没打开过这份文档用领令牌的同一个 QQ 或微信,在浏览器里打开一次文档再读
读到的是旧内容它用了上一次读的结果,或读的是本地 项目说明.md让它重新调用 get_content,报出这一次的最后修改时间
每一轮都很慢,或报上下文太长两百多个工具的说明每轮都在发走退路一。练完跑 claude mcp remove tencent-docs -s user
退路脚本报「没找到令牌」.env 不在当前目录,或等号后面是空的在小组项目根目录跑;看 TENCENT_DOCS_TOKEN= 后面有没有令牌

出处:腾讯文档开放平台 MCP 概述与《腾讯文档 MCP 使用指南》(docs.qq.com/open/document/mcp);修订记录入口见腾讯客服「腾讯文档历史编辑版本信息如何查询」(kf.qq.com)与腾讯文档使用教程的文档篇。2026-10-28 查阅。

排错

练习一 · 装 Git 与加入老师的仓库

现象多半是怎么办
git --version 报「不是内部或外部命令」没装,或者装完没重开终端关掉所有终端,VS Code 里的也关,重开再试
提交时报 Author identity unknown没配姓名和邮箱配 user.name 和 user.email,再提交
主线叫 master,推送报 src refspec main does not match any没配 init.defaultBranch配上;已建的仓库让它跑 git branch -M main 再推
提交时提示 LF will be replaced by CRLFGit 在提醒换行符转换不是错误,照常提交
中文文件名显示成 \346\225\260 这样的编码没配 core.quotepath false配上,重开终端
推送报 Permission ... denied 或 403克隆成了老师的仓库,不是自己的 Forkgit remote -v 看地址;让它用 git remote set-url origin 换成自己 Fork 的地址再推
地址是自己的,推送还是 403这台电脑存着别人的登录开始菜单搜凭据管理器,在 Windows 凭据里删掉 github.com 或 gitee.com 那一条,再推
推送被拒,提示 ! [rejected] ... (fetch first)远端有你本地没有的提交让它先拉下来合并,再推。别用 --force
发 PR 找不到自己的分支,或方向反了选错了仓库或分支目标选老师仓库的 main,来源选你 Fork 里的 stu/ 分支
PR 显示有冲突老师先合了别人的,和你改的是同一行不用处理,这就是课上要看的现象
github.com 打不开网络到 GitHub 不稳照第四步右栏走 Gitee

练习二 · 小组仓库与上线

现象多半是怎么办
组长第一次推送被拒,提示 (fetch first)建仓库时加了 README 之类的文件,远端不是空的让它先拉下来合并,再推。别用 --force,会盖掉别人的提交
组员推不上去,说没权限邀请没接受,或者没加上先接受邀请。GitHub 让组长看 Collaborators 名单;Gitee 看角色是不是开发者,报告者和观察者推不了
Gitee 推送反复弹密码框密码填错了,或者账号开了双因素认证,只认私人令牌改填私人令牌。填错存进电脑的,在凭据管理器里删掉 gitee.com 那一条再推
GitHub 一直转圈,或报 Failed to connect to github.com port 443本机网络到不了 GitHub整组换 Gitee,照右栏做,命令一条不改,只换地址
合并时报失败,退出码 1冲突状态,git status 写着 both modified让它把两边摆出来,你定留什么。别 git merge --abort
合并后页面少了一处改动冲突时整份取了一边把丢的那段重新提交一次,别重写历史
提交记录上不是自己的名字这台机器没配或配的是别人的 user.name重配一次,之后的新提交才对
部署上传被拒,或报令牌不对令牌抄错、用了别组的,或包里有像 sk- 开头的串回「我的小组」页重新复制;让它列出包里的文件,删掉带 sk- 的再传
网址打开是 404 或白屏deploy.json 的 root 不对,或 index.html 不在包的最外层让它检查这两处,重新打包上传
样式或图片丢了引用写成了 C:/... 这类本机路径,或文件名大小写不一致改成相对路径,大小写对齐
重新部署后看不到变化浏览器缓存按 Ctrl+F5 强制刷新,再让它查状态是不是 ok

练习三 · 腾讯文档

排错表在练习三末尾。连接器接不上就走退路,验收照样算过。

课后 · 按日期排

时点做什么
今晚国产智能体,各组现场测部署,个人作业二展示
本周内练习一的 Pull Request 没发的发出去
本周内练习二每人的分支都经合并请求进 main,换台设备打得开本组网址
本周内练习三本组那一段写定,填回网页,重新部署
本周内把小组终期项目搬进这个仓库。原始数据和令牌挡在 .gitignore 外面
11 月 4 日下午讲座,晚上照常上课
11 月 10 日截止终期材料交平台,报告 PDF、展示页 zip、会话记录 zip

金融AI智能体设计与应用 · 第 7 次课 · 主讲 张一帆 · 中山大学岭南学院