Be dangerous in the terminal, and never lose work again.
Concepts
- Day 1: apply for the GitHub Student Developer Pack (see section 03)
- Shell basics (bash/zsh): navigation, files & permissions, pipes, environment variables
- SSH keys — connecting to GitHub
- Git for real: branches, commits, merge vs. rebase (concept), resolving conflicts
- Collaboration: commit-message conventions, PR templates, code-review etiquette
Resources
- freeCodeCamp — Learn Bash by building a boilerplate
- Pro Git — chapters 1–3 (free)
- GitHub Docs — About pull requests
- Oh My Git! — a game for branching intuition
A bash/zsh script new-project.sh that scaffolds a project: makes the folder structure, writes a .env.example, initializes git, installs a commit-message lint hook that rejects messages not starting with feat|fix|docs|chore, and prints next steps.
Deliverables
- The bootstrapper script
- A GitHub repo named relay
- CONTRIBUTING.md + a PR template
Acceptance criteria
- Running the script produces a ready repo
- A bad commit message is rejected
- First PR merged via the template
Stretch ▸ add a --with-ssh flag that generates and prints a deploy key.
Walk through your git history. Explain one merge conflict you caused on purpose and how you resolved it.