Pen2Pencil

Loading course…

GitHub — Full Course Syllabus

Practical, step-by-step skills to finish guided mini-projects locally and publish them cleanly to a GitHub repository.

  1. 1. Cloning a repository with git cloneHow to create a local copy of a remote repository using git clone with HTTPS and SSH URLs.
  2. 2. Project READMECreating and updating a README.md that documents project purpose, setup steps, and usage instructions.
  3. 3. .gitignoreAdding and customizing a .gitignore file to exclude build artifacts, secrets, and local config files from commits.
  4. 4. Branching (git branch)Creating and listing branches locally to isolate feature or fix work from main development.
  5. 5. Switching branches (git switch / git checkout)Changing the working branch using git switch or git checkout and understanding detached HEAD states.
  6. 6. Staging changes with git addSelecting files and hunks to include in the next commit by using git add with paths and options.
  7. 7. Committing changes with git commitCreating commits with meaningful messages and using flags like -m and --amend responsibly.
  8. 8. Viewing commit history with git logInspecting commit history with git log and useful formatting options to track changes.
  9. 9. Pushing to remote (git push)Uploading local branch commits to the remote repository and setting upstream branches when needed.
  10. 10. Creating a pull request (PR) on GitHubOpening a pull request from a feature branch to main using the GitHub UI and writing a clear PR description.
  11. 11. Repository LICENSE fileSelecting and adding an appropriate open-source license file to declare reuse permissions for the project.
  12. 12. Commit message conventions (imperative tense, concise summary)Writing concise, descriptive commit messages and following a simple convention like imperative tense.
  13. 13. Including project assets (images, data)Adding and referencing project assets in the repo while avoiding committing large binary files directly.
  14. 14. Using GitHub Issues to track tasksCreating and linking GitHub Issues for tasks or bugs and referencing them from commits and PRs.
  15. 15. CONTRIBUTING.md for open-source projectsProviding contribution guidelines and local setup steps in CONTRIBUTING.md to help others contribute.
  16. 16. Forking a repositoryCreating a personal fork of a repository on GitHub to propose changes when you don't have write access.
  17. 17. Basic repository CI status checks for pull requestsUnderstanding status checks from CI (pass/fail) on PRs and how they affect merges (no CI pipeline creation required).
  18. 18. Fetching vs Pulling (git fetch / git pull)Synchronizing local branches with remote changes using git fetch and git pull and deciding when to merge or rebase.
  19. 19. Merging pull requests (squash, merge, rebase)Merging PRs via squash, merge, or rebase strategies in GitHub and when to choose each option.
  20. 20. Resolving merge conflictsIdentifying and resolving merge conflicts locally and completing the merge with proper commits.
  21. 21. Tagging releases (git tag)Creating annotated and lightweight tags for release snapshots and pushing tags to the remote.
  22. 22. Syncing a fork with upstreamKeeping a fork up to date by fetching from upstream and merging or rebasing changes into your forked main branch.
  23. 23. Adding a remote (git remote add)Configuring additional remotes (e.g., upstream) to push/fetch from multiple repositories.
  24. 24. Secrets and credentials handling in Git workflowsAvoiding committing secrets by using environment variables, .gitignore, and GitHub Secrets for actions.
  25. 25. Deploy static site to GitHub PagesDeploying static project output to GitHub Pages via branch or gh-pages and configuring the site.
  26. 26. Publishing a GitHub Release with release notes and artifactsCreating a GitHub Release with attached artifacts and release notes to mark project milestones.
  27. 27. Issue and Pull Request TemplatesAdding ISSUE_TEMPLATE and PULL_REQUEST_TEMPLATE to standardize contributions and PR descriptions.
  28. 28. Checking repository size and large-file strategiesInspecting repo size and adopting strategies like Git LFS or external hosting for large assets.
  29. 29. Tagging conventions (semantic versioning basics)Applying semantic versioning principles to tags (vMAJOR.MINOR.PATCH) when labeling releases.
  30. 30. Reverting and resetting commitsUndoing changes safely with git revert for public history and git reset for local history adjustments.
  31. 31. Interactive staging with git add -pSelecting hunks interactively to stage partial changes using git add -p or git add -i.
  32. 32. Squashing commits with interactive rebaseCombining multiple commits into one using interactive rebase to keep a clean feature history before pushing.