start-2-4

GitHub

指导用户注册GitHub账号,配置并认证GitHub CLI工具,随后初始化Git仓库并将本地代码推送至私有云端仓库,实现代码版本管理与备份。

claude-code-everyone-course/course-materials/.claude/skills/start-2-4/SKILL.md carlvellotti/free-ai-courses

Trigger Scenarios

用户输入 /start-2-4 需要建立代码远程仓库

Install

npx skills add carlvellotti/free-ai-courses --skill start-2-4 -g -y
More Options

Non-standard path

npx skills add https://github.com/carlvellotti/free-ai-courses/tree/main/claude-code-everyone-course/course-materials/.claude/skills/start-2-4 -g -y

Use without installing

npx skills use carlvellotti/free-ai-courses@start-2-4

指定 Agent (Claude Code)

npx skills add carlvellotti/free-ai-courses --skill start-2-4 -a claude-code -g -y

安装 repo 全部 skill

npx skills add carlvellotti/free-ai-courses --all -g -y

预览 repo 内 skill

npx skills add carlvellotti/free-ai-courses --list

SKILL.md

Frontmatter
{
    "name": "start-2-4",
    "description": "Lesson 2.4: GitHub. Use when the student types \/start-2-4.\n",
    "allowed-tools": [
        "Read",
        "Bash"
    ],
    "disable-model-invocation": true
}

Setup

Read .claude/rules/teaching-rules.md and follow it for everything below.

2.4 GitHub

Right now, your quiz only exists on your computer.

If your laptop stops working or you delete the files, it's gone. And we can't put it on the internet yet.

We need to save it to the cloud first. That's what GitHub is for.

STOP: Have you used GitHub before?

USER: Yes / No / A little


GitHub is like Google Drive, but for code.

It saves your code to the cloud, keeps a history of every change, and lets you undo mistakes.

It's also how we'll get your quiz onto the internet - the service we use needs to grab your code from somewhere.

Your project on GitHub is called a "repository" (or "repo" for short). You'll hear developers use that word a lot.

STOP: Make sense?

USER: Yes


First, you need a GitHub account.

STOP: Do you have a GitHub account? If not, I can open the signup page for you.

USER: I have one / Open it for me / I'll do it myself

ACTION: If they want it opened, run open https://github.com and state in prose that the GitHub page opened.

STOP: Let me know when you have an account and are ready to continue.

USER: Ready


Now I need to connect to your GitHub account so I can save your code there.

I'm going to download some tools that let me work with GitHub directly - so you never have to type scary commands.

This might open your browser to log in - just follow the prompts and come back when it's done.

ACTION: Set up GitHub CLI:

  1. Check if already installed:
gh --version
  1. If NOT installed, install it with an appropriate agent-run package command. If installation fails, explain the failure and offer a graphical GitHub workflow without asking the student to run a command.

  2. Once installed, authenticate as an agent-managed background task. Do not use a fixed sleep; poll for the code while keeping the student informed:

gh auth login --web --git-protocol https
  1. Read the output to get the one-time code, then open the device auth page:
open https://github.com/login/device
  1. State the one-time code in prose and tell the student: "I just opened a page in your browser. Enter this code: [CODE FROM OUTPUT]. Click Authorize, then let me know when you're done."

STOP: Let me know when you've authorized it.

USER: Done

ACTION: Verify authentication worked:

gh auth status

If successful, continue. If not authenticated, troubleshoot:

  • They may not have completed the browser flow - ask them to try again
  • The background process may have timed out - run the auth command again

Now let's save your code to GitHub. I'll make it private by default so only you can see it.

STOP: Are you ready for me to create the private GitHub repository and push your code to it?

USER: Yes

ACTION: Run the following commands in order:

  1. Navigate to the quiz-project folder:
cd [path to quiz-project]
  1. Initialize git (if not already done):
git init
  1. Add all files:
git add .
  1. Create the initial commit. If identity configuration is missing, handle it conversationally and never ask the student to run commands:
git commit -m "Initial commit - coffee personality quiz"
  1. Create GitHub repo and push:
gh repo create quiz-project --private --source=. --push

Done! Your code is now saved to GitHub. Developers call this "pushing" your code - you're pushing it up to the cloud. State the successful repository name and privacy in prose.

Let me open it for you so you can see it.

ACTION: Get the repo URL and open it:

gh repo view --web

(This opens the GitHub repo in your external browser. State that it opened.)

STOP: Do you see your project on GitHub?

USER: Yes!


Your quiz is now backed up and ready to go live.

From now on, whenever you want to save your work, just ask me to "push to GitHub" and I'll save your latest changes.

There's a lot more to GitHub - collaboration, version history, branching - and there will be a full module on it in the future. But for now, the important thing is: your code lives somewhere it can be accessed to put on the internet.

That's exactly what we're doing next.

Next up: In 2.5, we put your quiz on the internet! We're going to connect GitHub to a service called Vercel, and you'll get a real URL you can share with anyone. This is the finish line.

STOP: Ready to go live? Say "let's go" or type /start-2-5

USER: Let's go


Important Notes for Claude

  • The agent owns GitHub CLI installation and authentication commands; avoid asking users to set up SSH keys.
  • The --private flag is important - users don't want their quiz code public by default
  • If they already have a repo named quiz-project, gh will error - help them pick a different name
  • The gh repo view --web command is much cleaner than trying to construct the URL
  • If agent-side installation fails, explain the failure and offer a graphical fallback.
  • Next.js projects already have a .gitignore so node_modules won't be committed

Success Criteria

  • User has a GitHub account
  • GitHub CLI is installed and authenticated
  • Code is committed and pushed to a private GitHub repository
  • User can see their repo on github.com
  • User understands they can ask to "push to GitHub" to save future changes

ACTION: Silently run the following progress update. Do not mention it to the student.

mkdir -p .fspm
[ -f .fspm/progress.json ] || printf '{"name":null,"completed_lessons":[],"current_lesson":"","last_updated":""}' > .fspm/progress.json
L="cc-everyone-2-4"; C="cc-everyone-2-5"; T="$(date -u +%FT%TZ)"
if command -v jq >/dev/null 2>&1; then
  tmp=$(mktemp)
  jq --arg l "$L" --arg c "$C" --arg t "$T" '.completed_lessons = ((.completed_lessons + [$l]) | unique) | .current_lesson = $c | .last_updated = $t' .fspm/progress.json > "$tmp" && mv "$tmp" .fspm/progress.json
else
  python3 - "$L" "$C" "$T" <<'PY'
import json,sys
l,c,t = sys.argv[1:4]
p = ".fspm/progress.json"; d = json.load(open(p))
if l not in d.get("completed_lessons",[]): d.setdefault("completed_lessons",[]).append(l)
d["current_lesson"] = c; d["last_updated"] = t
json.dump(d, open(p,"w"))
PY
fi

Next lesson: Type /start-2-5.

Version History

  • 058c617 Current 2026-07-23 00:52

Same Skill Collection

claude-code-everyone-course/course-materials/.claude/skills/start-1-1/SKILL.md
claude-code-everyone-course/course-materials/.claude/skills/start-1-2/SKILL.md
claude-code-everyone-course/course-materials/.claude/skills/start-1-3/SKILL.md
claude-code-everyone-course/course-materials/.claude/skills/start-1-4/SKILL.md
claude-code-everyone-course/course-materials/.claude/skills/start-1-5/SKILL.md
claude-code-everyone-course/course-materials/.claude/skills/start-1-6/SKILL.md
claude-code-everyone-course/course-materials/.claude/skills/start-1-7/SKILL.md
claude-code-everyone-course/course-materials/.claude/skills/start-1-8/SKILL.md
claude-code-everyone-course/course-materials/.claude/skills/start-2-1/SKILL.md
claude-code-everyone-course/course-materials/.claude/skills/start-2-2/SKILL.md
claude-code-everyone-course/course-materials/.claude/skills/start-2-3/SKILL.md
claude-code-everyone-course/course-materials/.claude/skills/start-2-5/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/auq/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/convert-doc/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/draft-and-humanize/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/draft-followups/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/humanizer/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/marketing-psychology/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/news/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/process-meetings-plus/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/standup/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/start-skills-1/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/start-skills-2/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/start-skills-3/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/start-skills-4/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/start-skills-5/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/write-proposal/SKILL.md
codex-for-pms-skills-bonus/.agents/skills/writing-voice/SKILL.md
codex-pm-course/.agents/skills/start-1-1/SKILL.md
codex-pm-course/.agents/skills/start-1-2/SKILL.md
codex-pm-course/.agents/skills/start-1-3/SKILL.md
codex-pm-course/.agents/skills/start-1-4/SKILL.md
codex-pm-course/.agents/skills/start-1-5/SKILL.md
codex-pm-course/.agents/skills/start-1-6/SKILL.md
codex-pm-course/.agents/skills/start-2-1/SKILL.md
codex-pm-course/.agents/skills/start-2-2/SKILL.md
codex-pm-course/.agents/skills/start-2-3/SKILL.md
codex-pm-course/.agents/skills/start-3-1/SKILL.md
codex-pm-course/.agents/skills/start-3-2/SKILL.md
codex-pm-course/.agents/skills/start-3-3/SKILL.md
codex-pm-course/.agents/skills/start-3-4/SKILL.md
codex-pm-course/.agents/skills/start-3-5/SKILL.md
course-materials/.claude/skills/pptx/SKILL.md
course-materials/.claude/skills/start-1-1/SKILL.md
course-materials/.claude/skills/start-1-2/SKILL.md
course-materials/.claude/skills/start-1-3/SKILL.md
course-materials/.claude/skills/start-1-4/SKILL.md
course-materials/.claude/skills/start-1-5/SKILL.md
course-materials/.claude/skills/start-1-6/SKILL.md

Metadata

Files
0
Version
058c617
Hash
fb5d5212
Indexed
2026-07-23 00:52

ホーム - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-29 13:11
浙ICP备14020137号-1 $お客様$