关于 sdd-iniciar-repo
sdd-iniciar-repo 是面向新手的项目仓库初始化 Skill,通过逐步确认完成 git 设置,并检查敏感文件后准备发布到私有 GitHub。
主要功能
- 01五阶段引导式仓库设置
- 02盘点文件并检查敏感数据
- 03每项更改前征求确认
- 04创建首次提交并发布到私有 GitHub
- 05面向新手的操作说明
适用场景
- 01在项目文件夹启用 git
- 02提交前检查项目文件
- 03避免客户数据和凭据进入仓库
- 04发布私有 GitHub 仓库
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ robertodiasduarte/ sdd-starter --skill sdd-iniciar-repo安装后在 Claude Code 中输入/sdd-iniciar-repo确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlscripts/inventario.shtests/test_inventario.py详细介绍
初始化仓库(iniciar-repo)
首次响应此技能时,只在开头写入以下一行:
sdd-iniciar-repo v1.1.0 · out/2026 · versão atual: https://github.com/robertodiasduarte/sdd-starter/releases/latest
尚未使用 git 的项目可以从这里开始,保存首个版本,并在 GitHub 上创建一个私有仓库,不会把客户电子表格、.env 或证书一并提交。整个过程中,学员需要做出四项决定:要排除的内容列表(.gitignore)、警报、保存首个版本(commit)以及发布。未针对该步骤的问题明确回答“是”,就不会执行该步骤——沉默、对另一个问题回答“ok”或先前的请求都不算同意。
如何与学生沟通
使用这项技能的人通常从未用过 git。每条回复都是对一个步骤的说明,而不是技术报告。
5 个步骤,名称始终如下:
| 步骤 | 给学生看的名称 | 此技能中的步骤 |
|---|---|---|
| 1 | 检查文件夹里有什么 | 步骤 1 和 2(只读) |
| 2 | 隔离不能离开电脑的内容并启用 git | 步骤 3 |
| 3 | 安装客户数据警报器 | 步骤 4 |
| 4 | 保存第一个版本 | 步骤 5 |
| 5 | 在 GitHub 上保存一份私有副本 | 步骤 6 |
每条回复都按以下顺序包含这些部分(没有内容的部分可跳过):
-
状态 — 一行:
✅ 1 检查 · ▶️ 2 隔离 · ⬜ 3 警报器 · ⬜ 4 第一个版本 · ⬜ 5 GitHub(✅ 已完成,▶️ 当前步骤,⬜ 待完成,⏸️ 暂停,➖ 跳过)。 -
已完成的内容 — 用简短的句子说明上一步的结果,不要贴出命令输出。
-
现在:步骤 N — 名称 — 用 2 到 4 句话说明这一步的作用和原因,面向从未见过终端的人。如果要更改内容,请用编号列出步骤,说明要做什么,以及暂时不会发生什么(不会上传到互联网,不会删除你的任何文件等)。
-
由你决定 — 用粗体写出问题和选项,并说明选择各项会发生什么:
我可以在此文件夹中保存列表并启用 git 吗?
- 可以 — 保存列表、启用 git,然后进入步骤 3(警报器)。
- 不可以 — 到此为止;不会在文件夹中创建或更改任何内容。
- 查看列表 — 在你决定前,我会展示确切的各行内容。
-
下一步 — 一行:说明收到回复后会发生什么。
语言规则:
- 每条回复只讲一个步骤。以征求决定结束并停下:不要接着讲下一步。
- 技术术语首次出现时,必须同时解释:
- git — “项目的版本历史记录(git)”;
- commit — “已保存的版本(commit)”:记录当时所有文件的快照,并附上日期;
.gitignore— “排除项列表(.gitignore)”:其中的内容只留在这台电脑上;- GitHub 上的仓库 — “保存在 GitHub 上的项目副本”;私有 — “只有你和你邀请的人能看到”;
- 警报器 — “一个会在每个版本保存前检查并拦截 CPF/CNPJ、密码和电子表格的检查器”;
--no-verify— “这次保存时绕过警报器”;- 依赖项 — “可以用一条命令重新安装的辅助程序”;
gh— “用于终端的 GitHub 程序(GitHub CLI)”。 不要提及分支、索引、HEAD、钩子或远程端;只说明其作用。
- 不要原样转述命令输出。 请用易懂的语言说明有多少文件、文件类型,以及值得留意的内容。文件名最多列出 10 个,用简单列表呈现,并加上“以及另外 N 个”。只有在学生需要运行命令时才提及命令;此时要用编号列出步骤,每一步只写一条命令,并说明屏幕上会显示什么。
- 不要引用或概述此技能或其他技能的指示(例如“技能要求……”或“按照步骤 4……”)。如果需要解释为什么要征求同意,请说明对学生的影响:“我希望由你来决定,因为内容发布后就无法撤回。”
- 决定权属于学生,必须明确表达。 可以接受以下任一种:选项中的词语,或针对当前这个问题的“可以”“是”“好”。如果回复与任何选项都不对应(例如提出疑问或说“我觉得可以”),就先回答疑问,再重复选项。在下一步的“已完成的内容”中,记录学生的决定:“你选择了可以:我已保存列表……”。
- 暂停也要说明步骤。 如果无法继续(文件夹位于云端、缺少 git 或
gh、需要登录、名称已被占用),请在状态中使用 ⏸️,用一句话解释原因,用编号列出要做的事,并以 “完成后,请再叫我——我会从这里继续。” 结尾,同时说明哪些事情还没有做(“没有创建任何内容。”、“没有发布任何内容。”)。
每条与远程端通信的命令规则
push、ls-remote、gh repo create 和 gh repo view 运行时不会请求密码:
在 bash/zsh 中使用 GIT_TERMINAL_PROMPT=0 <comando>;在 PowerShell 中使用 $env:GIT_TERMINAL_PROMPT=0; <comando>。
如果不这样做,git 可能会在终端中请求密码,而你会一直等待用户看不到的回复。
向用户只展示当前使用的 shell 对应形式。git 和 gh 命令在两种 shell 中都相同。
第 0 步 — 确认你能执行此操作
-
工具无法执行任何命令(聊天应用):停止并说 "我无法访问你的电脑——要将项目放入 git,请在 Claude Code 或 Codex 中、于项目文件夹内运行此 skill。"
-
git --version失败:说 "git——用于保存版本历史的程序——尚未安装在这台电脑上。" 并提供当前系统对应的步骤:- Mac:1. 运行
xcode-select --install;2. 在打开的窗口中点击 安装 并等待完成(需要几分钟);3. 关闭并重新打开终端。 - Windows:1. 在 PowerShell 中运行
winget install --id Git.Git -e(没有winget:从 https://git-scm.com/downloads 下载并使用默认勾选的选项安装);2. 关闭并重新打开终端。 - Linux:使用发行版的软件包管理器(例如,
sudo apt install git)。
停止:"尚未创建任何内容。完成后,请再次告诉我——我会从这里继续。"
- Mac:1. 运行
-
此 skill 的脚本需要 bash。 macOS 和 Linux 已自带。在 Windows 上,Git for Windows 附带 Git Bash:如果 PowerShell 中的
bash不在 PATH 中,运行& "$env:ProgramFiles\Git\bin\bash.exe" "<pasta desta skill>\scripts\inventario.sh"。如果完全没有 bash,则手动完成清单(第 2 步,PowerShell),并跳过卫生检查警告(第 4 步)。
<pasta desta skill> 是包含此 SKILL.md 的文件夹(项目中或 Agent 的全局文件夹中的 .claude/skills/sdd-iniciar-repo/ 或
.agents/skills/sdd-iniciar-repo/)。
第 1 步 — 项目所在位置(可恢复)
无需询问,直接确认:
| 情况 | 如何识别 | 转到 |
|---|---|---|
| 尚未使用 git | git rev-parse --show-toplevel 失败 | 第 2 步 |
| 位于更大的仓库中 | --show-toplevel 指向此文件夹上级的另一个文件夹 | 清单会指出是哪一个;停止 |
| git 中没有任何提交 | git rev-parse --verify -q HEAD 失败 | 第 2 步(已执行 git init:在第 3 步中跳过该操作) |
| 有提交但没有远程端 | 存在 HEAD 且 git remote 为空 | 第 2 步(包括历史记录清单),然后转到第 6 步 |
| 远程端没有此分支 | 存在 origin,且 GIT_TERMINAL_PROMPT=0 git ls-remote --heads origin <branch atual> 返回空 | 第 2 步,然后转到第 6 步第 7 项(发布未完成——仅当 origin 通过该处的检查时) |
| 已就绪 | 存在 origin 且包含当前分支 | 说 "此项目已经在 git 和 GitHub 中——请继续下一步。" 并停止 |
<branch atual> 是 git branch --show-current。
恢复执行时,状态会将已完成的步骤标记为 ✅(或将跳过的步骤标记为 ➖),而 “已完成内容”会用一句话说明已准备就绪的内容。
第 2 步 — 清点(只读)和身份信息
-
在项目文件夹中运行
bash "<pasta desta skill>/scripts/inventario.sh",并阅读输出。 向用户说明(参见 如何与用户沟通):有多少个文件会被纳入,是否发现敏感内容以及具体是什么;还要按类别说明排除清单涵盖的内容(“密码和证书”、“可重新安装的辅助程序”、“系统文件”、“电子表格”),不要逐行说明。只有用户选择查看清单时,才列出具体行。- 输出为 2:这是前置条件(文件夹由云端同步、是个人文件夹、仓库位于子文件夹或上级文件夹中,或缺少 git)。消息已说明该怎么做:将其转换为编号步骤,然后停止,并说明 “未创建任何内容。”
- 输出为 1:清点无法列出文件。不要继续进行不完整的清点:说明发生了什么,然后停止,并说明 “未创建任何内容。”
- 输出为 0:继续。清点会列出将纳入 git 的内容(遵循已有的
.gitignore),标出密码和证书、电子表格、超过 50 MB 的文件、依赖项,以及——如果已有提交——已进入历史记录的内容,最后给出.gitignore的建议。
-
**没有 bash(PowerShell)**时,手动完成相同的前置条件检查和清点,遇到第一项失败就停止:
- 路径中包含
OneDrive、Dropbox、Google Drive、My Drive、Meu Drive或iCloudDrive⇒ 将项目移出云端; - 文件夹是个人文件夹(
$env:USERPROFILE)⇒ 在项目文件夹中打开终端; git rev-parse --show-toplevel返回了另一个文件夹 ⇒ 当前文件夹位于更大的仓库中:在那个仓库中打开终端;- 当前文件夹没有 git,但
Get-ChildItem -Recurse -Depth 2 -Force -Filter .git -ErrorAction SilentlyContinue在子文件夹中找到.git(node_modules除外)⇒ 项目就是那个子文件夹:在其中打开终端; - 已有提交(
git rev-parse --verify -q HEAD有返回结果)时,检查历史记录:(git log --all --name-only --format= -z) -split [char]0 | Where-Object { $_ } | Sort-Object -Unique | Select-String -Pattern '(^|/)\.env|\.(pfx|p12|pem|key|xlsx|xls|csv|ods)$'(-z和-split [char]0可避免 git 将带重音符号或引号的文件名加上引号,从而导致无法识别扩展名)——匹配到的内容计入 已进入历史记录 区块(第 4 项)。
(Get-Location).Path Get-ChildItem -Recurse -Force -File -ErrorAction SilentlyContinue | Where-Object { $_.FullName -notmatch '\\(\.git|node_modules|\.venv|venv)\\' } | Where-Object { $_.Name -match '^\.env' -or $_.Extension -match '^\.(pfx|p12|pem|key|xlsx|xls|csv|ods)$' -or $_.Length -gt 50MB } | Select-Object FullName, @{n='MB';e={[math]::Round($_.Length/1MB)}}并使用与
inventario.sh相同的基础行生成.gitignore建议(密码和证书、依赖项、系统文件;如果发现电子表格和各个大文件,也要加入)。 - 路径中包含
-
git 身份信息:检查
git config user.name和git config user.email。如果为空 ⇒ 说明每个保存的版本都会带上保存者的姓名和电子邮件,并提供以下步骤:1.git config --global user.name "Seu Nome";2.git config --global user.email "[email protected]"(两个终端环境中的设置相同;电子邮件最好与 GitHub 账户使用的相同)。然后停止:没有这些信息,第一次保存版本会失败。 -
在历史记录中发现内容(🔴 已进入历史记录区块):如果其中有密码或证书 ⇒ 不要发布。说明发布会包含完整历史记录,包括之后删除的内容;本技能不会清理历史记录;保护措施是更改密码或吊销证书。停止,并说明 “未发布任何内容。” 如果历史记录中只有电子表格 ⇒ 列出文件名,并询问**“这些电子表格中有客户数据吗?”,选项为没有**(继续)和有(停止:不得发布此历史记录)——只有选择没有时才继续。
步骤 3 — .gitignore 和 git init(阶段 2,第 1 个决定)
“已完成的工作”是盘点的结果。“现在”说明,在启用 git 之前,你会按组记录要排除的内容,而这些内容只保留在这台电脑上。发现了表格或大文件?说明提案已经将它们排除在外;如果有需要纳入的内容(例如一个虚构的示例表格),学生可以说出名称。询问:
“我可以记录要排除的内容并在此文件夹中启用 git 吗?”
-
可以 — 我会记录要排除的内容并启用 git;目前不会保存到历史记录,也不会发送任何内容;
-
不可以 — 我会停止;不会创建或更改任何内容;
-
查看列表 — 我会展示具体的行,然后再次询问。
-
未获得肯定答复:停止,并回复 “未创建任何内容。”
-
获得肯定答复:将这些行添加到
.gitignore(如果文件不存在则创建;绝不删除已有行)。如果没有.git:git init -b main。如果 Git 版本较旧、不支持-b⇒ 执行git init和git symbolic-ref HEAD refs/heads/main。
步骤 4 — 首次 commit 前的警报(阶段 3,第 2 个决定)
第一个保存的版本风险最高:它会包含整个文件夹。在创建这个版本之前:
-
sdd-higiene-dado技能存在于同一技能文件夹中:完整遵循其流程 —verificar、解释、提出它的问题,并且只有获得肯定答复后才执行instalar。如果它因已有其他警报而拒绝安装,请遵循它的说明。给学生的答复遵循本技能的格式(状态、已完成的工作、阶段 3、你的决定、下一步),并提出它的问题和以下选项:“我可以在这个项目中安装警报吗?”
- 可以 — 我会安装;之后它会检查每个保存的版本,包括此文件夹和各个工作线中的版本;
- 不可以 — 我会在没有警报的情况下继续到阶段 4;我会自行检查第一个版本。
根据警报的作用进行说明:它会拦截什么、它只保留在这台电脑上(不会发送到 GitHub)、检查后可以绕过警报进行保存,以及如何移除它。只有学生询问时,才提供文件路径和卸载命令。
-
不存在:用一句话说明它的作用(拦截包含有效 CPF/CNPJ、
.env、证书或新表格的版本),说明可通过npx skills add robertodiasduarte/sdd-starter -a <claude-code ou codex> -g -y安装,并询问 “要在没有警报的情况下继续吗?”,选项为 可以(继续到阶段 4)和 不可以(停止,等你安装;之后请再次找我)。未获得肯定答复则停止,并回复 “未提交任何内容。”
步骤 5 — 首次提交(阶段 4,第 3 次决策)
如果已经存在 HEAD(已完成提交),请跳过此步骤。
-
git rm -r -q --cached --ignore-unmatch .— 尚未提交时,这只会清空待纳入的列表(索引);不会删除磁盘上的任何文件。移除在.gitignore存在之前就已暂存的内容。 -
git add -A -
根据实际效果检查,而不是根据预期判断:
git ls-files -ci --exclude-standard的结果必须是空的,并且再次运行清单(此时它会读取已暂存的内容)时,不得出现 🔴 密码和证书、⚠️ 电子表格 或 ⚠️ 大文件 区块——用户在第 1 次确认时明确表示是虚构数据且需要纳入的电子表格除外(按名称指出)。如果出现这些区块,说明.gitignore未覆盖相应文件(存在旧的!行,或文件名不符合模式):运行git reset -q,指出该文件,建议补上缺少的规则,然后返回第 1 次确认。没有 bash 时,使用git status --short并手动查找相同的文件名。 -
安装好警报后,先运行警报再提问:
bash .git/hooks/pre-commit(只读取已暂存的内容,不会保存任何内容)。如果发现 CPF/CNPJ,请指出文件和行号(号码会打码),并在提出第 5 项的问题之前询问:“这些 CPF/CNPJ 是虚构的或已获授权的吗?”
- 是虚构的或已获授权的 — 首次提交时仅这一次跳过警报;警报仍会继续安装,供之后使用;
- 是客户的 — 暂停,等你替换为虚构数据;不会保存任何内容;
- 不知道 — 暂停;请检查文件,然后再让我处理。
-
按类型(代码、测试、文档、配置)显示数量和将要纳入的内容,每类最多列出 10 个示例名称,使用简单列表——绝不要显示
git status的输出。询问:“我可以在这台计算机上保存项目的首个版本,共 N 个文件吗?”
- 可以 — 在这台计算机上保存此版本;此时还不会上传到互联网;
- 不可以 — 撤销暂存;文件夹恢复原样,但仍启用了 git;
- 查看全部 — 显示完整列表,然后再次询问。
-
用户同意后:运行
git commit -m "Primeiro commit"(只有在用户于第 4 项选择是虚构的或已获授权的时,才在本次提交中使用--no-verify)。用户不同意时:运行git reset -q(只撤销暂存),并说明 “尚未完成任何提交。”
如果警报拒绝提交,请遵循 sdd-higiene-dado:展示它发现的内容,并提出修正方案。
绝不要自行运行 git commit --no-verify——只有当用户为这次提交选择已检查并希望保存时,才可以运行。
步骤 6 — 发布到 GitHub,设为私有(阶段 5,第 4 个决定)
-
gh --version失败 ⇒ 尚未安装 GitHub 命令行程序。操作步骤:- 安装——Mac:从 https://cli.github.com 下载安装程序;Windows:在 PowerShell 中运行
winget install --id GitHub.cli -e(或从同一网站下载安装程序); - 关闭并重新打开终端;
- 运行
gh auth login并依次选择:GitHub.com → HTTPS → Yes → Login with a web browser;复制显示的代码,并粘贴到浏览器中打开的页面。
停止:“尚未发布任何内容。完成后,请再告诉我一声——我会从这里继续。”
- 安装——Mac:从 https://cli.github.com 下载安装程序;Windows:在 PowerShell 中运行
-
gh auth status显示未登录任何账户 ⇒ 按照上面的步骤 3 操作,并说明登录需要在浏览器中完成,这是唯一一个不能替用户完成的步骤。停止:“尚未发布任何内容。” -
所有者和名称:所有者 =
gh api user --jq .login(或用户指定的组织);名称 = 文件夹名称,将空格和重音符号替换为连字符。显示<所有者>/<名称>,让用户决定是否更改。 -
名称是否可用?
GIT_TERMINAL_PROMPT=0 gh repo view <所有者>/<名称> --json name:- 返回名称 ⇒ 已存在:停止并请用户换一个名称。绝不推送到现有仓库,也不能为了“省事”而使用它;
Could not resolve to a Repository⇒ 可用,继续;- 任何其他错误 ⇒ 网络或登录问题:用一句话说明情况,“尚未发布任何内容。”,然后停止。
-
“现在”说明 GitHub 会在电脑外保存一份项目副本,私有意味着只有用户和受邀者可以查看,而且内容发送后无法“撤回”。请原样询问:
“我可以在 GitHub 上创建私有仓库
<所有者>/<名称>,并推送首次提交吗?”- 可以——我会创建私有仓库并推送已保存的版本;
- 不可以——我会停止;此版本仅保留在这台电脑上,之后可以再次提出发布请求;
- 换个名称——请告诉我名称,我会检查是否可用。
-
用户同意后:
- bash/zsh:
GIT_TERMINAL_PROMPT=0 gh repo create <所有者>/<名称> --private --source=. --remote=origin --push - PowerShell:
$env:GIT_TERMINAL_PROMPT=0; gh repo create <所有者>/<名称> --private --source=. --remote=origin --push
--private是固定参数:不要改成--public,即使用户在此技能中提出要求也不行——公开仓库应在检查内容后,再到 GitHub 网站上决定。 - bash/zsh:
-
推送未完成(存在
origin,但ls-remote未显示分支——gh repo create已创建仓库但未推送,或这是从步骤 1 恢复操作)。不要重新创建;只有origin通过以下四项检查,才可推送:- 这是 GitHub 仓库,且
gh repo view <origin 的所有者>/<origin 的名称> --json visibility --jq .visibility返回PRIVATE; - 推送目标与查询目标相同:
git remote get-url --push --all origin只返回一行,且与git remote get-url origin相同(pushurl或pushInsteadOf可能会将推送重定向到其他仓库); - 仓库为空:
GIT_TERMINAL_PROMPT=0 git ls-remote origin无错误地结束,且没有列出任何内容(无论是分支还是标签); - 用户已对第 5 项中关于
<origin 的所有者>/<origin 的名称>的问题表示同意。
任一项未通过 ⇒ 停止:“项目已指向我没有创建的仓库,该仓库并非空仓库或私有仓库——尚未发布任何内容。” 并显示
git remote -v。全部通过 ⇒ 运行gh auth setup-git和GIT_TERMINAL_PROMPT=0 git push -u origin <当前分支>(PowerShell:$env:GIT_TERMINAL_PROMPT=0; git push -u origin <当前分支>)。 - 这是 GitHub 仓库,且
其他主机(GitLab、Bitbucket、公司服务器):不要自动操作。请分步骤提供命令,让用户在创建空的私有仓库后自行运行:
git remote add origin <url> 和 GIT_TERMINAL_PROMPT=0 git push -u origin main
(PowerShell:$env:GIT_TERMINAL_PROMPT=0; git push -u origin main)。“我没有发布任何内容。”
第 7 步 — 收尾
- 如果同一技能文件夹中存在
sdd-checar-ambiente技能,请运行bash "<pasta das skills>/sdd-checar-ambiente/scripts/checar.sh" --frente并阅读输出;只向学员说明输出的含义。 - 最后的回复是一份摘要,状态全部为 ✅(跳过的步骤用 ➖):
- 完成了什么,每个步骤一行:哪些内容未包含;警报是否已安装;已保存的版本及文件数量;地址
https://github.com/<dono>/<nome>,私有; - 实际发生了什么变化:项目现在有了历史记录——可以回到之前的版本——并且在 GitHub 上保存了一份副本;
- 下一步:如果此技能是由
sdd-new-session调用的,请返回该技能并开始处理前沿事项。否则:“准备好了——现在只需提出前沿事项。”
- 完成了什么,每个步骤一行:哪些内容未包含;警报是否已安装;已保存的版本及文件数量;地址
此技能不会做什么
- 不会清理已有的、包含密码、证书或电子表格的历史记录(这是用户自己的事;
sdd-higiene-dado会说明如何保护这些内容)。 - 不会登录 GitHub、创建令牌或索要密码。
- 不会创建公开仓库,也不会自动使用 GitHub 以外的主机。
- 不会读取电子表格或
.env的内容:只会根据名称发出提示。 - 不会将项目移出同步文件夹:只会说明该怎么做。
- 不会在没有
sdd-higiene-dado的流程和提问的情况下安装警报。
每条规则存在的原因(阅读后再删除)
- 每次回复只处理一个步骤,并提供状态和选项 — 从未使用过 git 的人不知道自己进行到哪一步,也不知道每个“是”授权了什么。没有选项的一句“可以”会变成对用户未理解事项的授权;写明选项后,每个“是”都有明确范围,状态也能显示还剩多少工作。
- 不提及指令 — “技能要求……”对学员来说是噪音,也会让暂停显得像走流程;对他们来说,重要的是后果(发布后无法撤销)。
- 所有内容都避开同步文件夹 — iCloud、OneDrive、Dropbox 和 Google Drive 会逐个文件同步;
.git中有数千个会同时变更的文件,而同步可能产生冲突副本或丢失部分文件。在 Mac 上,如果桌面和文稿使用 iCloud,同步路径可能并不明显:清单会检查 iCloud 创建的快捷方式。 - 在任何
git add之前生成清单 — 在 Finance 模块文件夹中运行git add .,可能会把含有客户 CPF 的电子表格和办公室的.pfx文件一并加入;发布后再删除也无法撤销副本。 - 恢复操作时也要生成清单 — 自己已经提交过更改的人,可能在历史记录中留有
.env文件;警报只会检查当前准备提交的内容,不会检查过去。 - 首次提交前运行
git rm --cached—.gitignore不会移除已通过git add加入暂存区的内容;如果不清空索引,被忽略的文件仍会被包含。 - 在首次提交前、
git init之后安装警报 — 警报存放在.git/中;init之前没有安装位置,而等到首次提交后再安装就太晚了。 - 提交前询问 CPF/CNPJ,并提供选项 — 警报会根据数字校验位进行拦截,但无法判断数据是否为虚构;只有学员知道。因此,只有选择相应选项时才使用
--no-verify,且仅对该次提交生效。 - 创建前运行
gh repo view— 仓库名称可能已经存在(可能属于你的另一个项目,也可能属于某个组织);推送到那里会混合两个项目。出于同样的原因,恢复操作只会推送到空的私有origin:之前有人配置的origin可能是公开的。 git add后根据实际效果进行检查 — 建议的.gitignore可能不会生效:旧有的!行可能取消忽略规则,而大写名称也可能避开小写模式。最终要看实际准备提交的内容。- 固定使用
--private— 此技能面向的用户会保存客户数据;是否公开应根据内容来决定,而不是在助手流程的最后一步才决定。 - 可恢复继续 — 没有
gh、无法登录或没有网络时,学员会中途停下;再次调用时必须从中断处继续,而不能重新开始或重复操作。
属于 SDD Starter by RDD 的一部分 — https://github.com/robertodiasduarte/sdd-starter