GitHub Tutorial
- 1. Introduction to GitHub
- 2. Account Setup & SSH
- 3. Repository Management
- 4. Remotes & Syncing
- 5. Collaborating Via Branches
- 6. Forking & Pull Requests
- 7. Code Reviews & Branch Protection
- 8. Merge Strategies
- 9. Issues & Projects
- 10. Markdown & Project Wikis
- 11. Deploying to GitHub Pages
- 12. CI/CD with GitHub Actions
- 13. Packages & Releases
- 14. Gists & Discussions
- 15. Security & Dependabot
9. Issues & Project Management
GitHub is not just a hosting space for code; it is a full-featured project management platform. Through **Issues** and **Projects**, development teams can plan, track, and organize their work without ever leaving the platform. In this chapter, we will master these management tools.
1. Tracking Work with GitHub Issues
An **Issue** is a dedicated tracking page for a bug, a feature request, or an individual task. Think of it as a virtual sticky note on a project board.
To create an issue:
- Go to your repository and click the Issues tab.
- Click the green "New issue" button.
- Give the issue a clear title (e.g.,
[BUG] Login page styling breaks on Safari). - Write a description explaining details or reproducing steps.
- Click "Submit new issue".
2. Organizing Issues: Labels & Milestones
To keep your list of issues organized, you can assign metadata on the right-hand panel of any issue page:
- Assignees: Designate the developer(s) responsible for completing the task.
- Labels: Color-coded tags to categorize issues. Common default labels include:
bug: Something isn't working.enhancement: New feature request.documentation: Improvements to readmes or wikis.good first issue: Perfect, easy tasks for new contributors.
- Milestones: Groups of issues associated with a target deadline or release version (e.g.,
v1.0.0 Release).
3. Visualizing Workflows with GitHub Projects
GitHub Projects provides customizable Kanban-style boards to help you visualize task progression. You can organize cards into columns like **"Todo"**, **"In Progress"**, and **"Done"**.
To set up a Project Board:
- Click the **Projects** tab on your GitHub profile or repository page.
- Click "New project" and select a template (e.g., **Board** or **Table**).
- Add issues directly from your repositories to the board.
- Drag and drop cards across columns as you make progress on tasks!
4. Linking Issues to Pull Requests
To close tasks automatically when coding is complete, link your Pull Request to an issue:
- In your PR description field, write a supported keyword followed by the issue number, such as:
Closes #12 - Supported keywords:
close,closes,closed,fix,fixes,fixed,resolve,resolves,resolved. - Once the PR is approved and merged into your default branch, GitHub will **automatically close** the associated issue!