mcpField
S
sdd-iniciar-repo

sdd-iniciar-repo

github.com/robertodiasduarte其他118 次安装1 天前更新
代码仓库

关于 sdd-iniciar-repo

sdd-iniciar-repo 是面向新手的项目仓库初始化 Skill,通过逐步确认完成 git 设置,并检查敏感文件后准备发布到私有 GitHub。

主要功能

  1. 01五阶段引导式仓库设置
  2. 02盘点文件并检查敏感数据
  3. 03每项更改前征求确认
  4. 04创建首次提交并发布到私有 GitHub
  5. 05面向新手的操作说明

适用场景

  1. 01在项目文件夹启用 git
  2. 02提交前检查项目文件
  3. 03避免客户数据和凭据进入仓库
  4. 04发布私有 GitHub 仓库

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/robertodiasduarte/sdd-starter --skill sdd-iniciar-repo

安装后在 Claude Code 中输入/sdd-iniciar-repo确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
scripts/
inventario.sh
tests/
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. 状态 — 一行:✅ 1 检查 · ▶️ 2 隔离 · ⬜ 3 警报器 · ⬜ 4 第一个版本 · ⬜ 5 GitHub (✅ 已完成,▶️ 当前步骤,⬜ 待完成,⏸️ 暂停,➖ 跳过)。

  2. 已完成的内容 — 用简短的句子说明上一步的结果,不要贴出命令输出。

  3. 现在:步骤 N — 名称 — 用 2 到 4 句话说明这一步的作用和原因,面向从未见过终端的人。如果要更改内容,请用编号列出步骤,说明要做什么,以及暂时不会发生什么(不会上传到互联网,不会删除你的任何文件等)。

  4. 由你决定 — 用粗体写出问题和选项,并说明选择各项会发生什么:

    我可以在此文件夹中保存列表并启用 git 吗?

    • 可以 — 保存列表、启用 git,然后进入步骤 3(警报器)。
    • 不可以 — 到此为止;不会在文件夹中创建或更改任何内容。
    • 查看列表 — 在你决定前,我会展示确切的各行内容。
  5. 下一步 — 一行:说明收到回复后会发生什么。

语言规则:

  • 每条回复只讲一个步骤。以征求决定结束并停下:不要接着讲下一步。
  • 技术术语首次出现时,必须同时解释:
    • 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)。

    停止:"尚未创建任何内容。完成后,请再次告诉我——我会从这里继续。"

  • 此 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 步 — 项目所在位置(可恢复)

无需询问,直接确认:

情况如何识别转到
尚未使用 gitgit 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 步 — 清点(只读)和身份信息

  1. 在项目文件夹中运行 bash "<pasta desta skill>/scripts/inventario.sh",并阅读输出。 向用户说明(参见 如何与用户沟通):有多少个文件会被纳入,是否发现敏感内容以及具体是什么;还要按类别说明排除清单涵盖的内容(“密码和证书”、“可重新安装的辅助程序”、“系统文件”、“电子表格”),不要逐行说明。只有用户选择查看清单时,才列出具体行。

    • 输出为 2:这是前置条件(文件夹由云端同步、是个人文件夹、仓库位于子文件夹或上级文件夹中,或缺少 git)。消息已说明该怎么做:将其转换为编号步骤,然后停止,并说明 “未创建任何内容。”
    • 输出为 1:清点无法列出文件。不要继续进行不完整的清点:说明发生了什么,然后停止,并说明 “未创建任何内容。”
    • 输出为 0:继续。清点会列出将纳入 git 的内容(遵循已有的 .gitignore),标出密码和证书、电子表格、超过 50 MB 的文件、依赖项,以及——如果已有提交——已进入历史记录的内容,最后给出 .gitignore 的建议。
  2. **没有 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 建议(密码和证书、依赖项、系统文件;如果发现电子表格和各个大文件,也要加入)。

  3. 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 账户使用的相同)。然后停止:没有这些信息,第一次保存版本会失败。

  4. 在历史记录中发现内容(🔴 已进入历史记录区块):如果其中有密码或证书 ⇒ 不要发布。说明发布会包含完整历史记录,包括之后删除的内容;本技能不会清理历史记录;保护措施是更改密码或吊销证书。停止,并说明 “未发布任何内容。” 如果历史记录中只有电子表格 ⇒ 列出文件名,并询问**“这些电子表格中有客户数据吗?”,选项为没有**(继续)和有(停止:不得发布此历史记录)——只有选择没有时才继续。

步骤 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(已完成提交),请跳过此步骤。

  1. git rm -r -q --cached --ignore-unmatch . — 尚未提交时,这只会清空待纳入的列表(索引);不会删除磁盘上的任何文件。移除在 .gitignore 存在之前就已暂存的内容。

  2. git add -A

  3. 根据实际效果检查,而不是根据预期判断:git ls-files -ci --exclude-standard 的结果必须是空的,并且再次运行清单(此时它会读取已暂存的内容)时,不得出现 🔴 密码和证书、⚠️ 电子表格 或 ⚠️ 大文件 区块——用户在第 1 次确认时明确表示是虚构数据且需要纳入的电子表格除外(按名称指出)。如果出现这些区块,说明 .gitignore 未覆盖相应文件(存在旧的 ! 行,或文件名不符合模式):运行 git reset -q,指出该文件,建议补上缺少的规则,然后返回第 1 次确认。没有 bash 时,使用 git status --short 并手动查找相同的文件名。

  4. 安装好警报后,先运行警报再提问:bash .git/hooks/pre-commit(只读取已暂存的内容,不会保存任何内容)。如果发现 CPF/CNPJ,请指出文件和行号(号码会打码),并在提出第 5 项的问题之前询问:

    “这些 CPF/CNPJ 是虚构的或已获授权的吗?”

    • 是虚构的或已获授权的 — 首次提交时仅这一次跳过警报;警报仍会继续安装,供之后使用;
    • 是客户的 — 暂停,等你替换为虚构数据;不会保存任何内容;
    • 不知道 — 暂停;请检查文件,然后再让我处理。
  5. 按类型(代码、测试、文档、配置)显示数量和将要纳入的内容,每类最多列出 10 个示例名称,使用简单列表——绝不要显示 git status 的输出。询问:

    “我可以在这台计算机上保存项目的首个版本,共 N 个文件吗?”

    • 可以 — 在这台计算机上保存此版本;此时还不会上传到互联网;
    • 不可以 — 撤销暂存;文件夹恢复原样,但仍启用了 git;
    • 查看全部 — 显示完整列表,然后再次询问。
  6. 用户同意后:运行 git commit -m "Primeiro commit"(只有在用户于第 4 项选择是虚构的或已获授权的时,才在本次提交中使用 --no-verify)。用户不同意时:运行 git reset -q(只撤销暂存),并说明 “尚未完成任何提交。”

如果警报拒绝提交,请遵循 sdd-higiene-dado:展示它发现的内容,并提出修正方案。 绝不要自行运行 git commit --no-verify——只有当用户为这次提交选择已检查并希望保存时,才可以运行。

步骤 6 — 发布到 GitHub,设为私有(阶段 5,第 4 个决定)

  1. gh --version 失败 ⇒ 尚未安装 GitHub 命令行程序。操作步骤:

    1. 安装——Mac:从 https://cli.github.com 下载安装程序;Windows:在 PowerShell 中运行 winget install --id GitHub.cli -e (或从同一网站下载安装程序);
    2. 关闭并重新打开终端;
    3. 运行 gh auth login 并依次选择:GitHub.com → HTTPS → Yes → Login with a web browser;复制显示的代码,并粘贴到浏览器中打开的页面。

    停止:“尚未发布任何内容。完成后,请再告诉我一声——我会从这里继续。”

  2. gh auth status 显示未登录任何账户 ⇒ 按照上面的步骤 3 操作,并说明登录需要在浏览器中完成,这是唯一一个不能替用户完成的步骤。停止:“尚未发布任何内容。”

  3. 所有者和名称:所有者 = gh api user --jq .login(或用户指定的组织);名称 = 文件夹名称,将空格和重音符号替换为连字符。显示 <所有者>/<名称>,让用户决定是否更改。

  4. 名称是否可用? GIT_TERMINAL_PROMPT=0 gh repo view <所有者>/<名称> --json name:

    • 返回名称 ⇒ 已存在:停止并请用户换一个名称。绝不推送到现有仓库,也不能为了“省事”而使用它;
    • Could not resolve to a Repository ⇒ 可用,继续;
    • 任何其他错误 ⇒ 网络或登录问题:用一句话说明情况,“尚未发布任何内容。”,然后停止。
  5. “现在”说明 GitHub 会在电脑外保存一份项目副本,私有意味着只有用户和受邀者可以查看,而且内容发送后无法“撤回”。请原样询问:

    “我可以在 GitHub 上创建私有仓库 <所有者>/<名称>,并推送首次提交吗?”

    • 可以——我会创建私有仓库并推送已保存的版本;
    • 不可以——我会停止;此版本仅保留在这台电脑上,之后可以再次提出发布请求;
    • 换个名称——请告诉我名称,我会检查是否可用。
  6. 用户同意后:

    • 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 网站上决定。

  7. 推送未完成(存在 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 <当前分支>)。

其他主机(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

评论

支持 Markdown