Git Notes
GitHub Issues is the built-in project tracking system that comes with every GitHub repository. Issues serve as the central place to report bugs, request...
GitHub Issues is the built-in project tracking system that comes with every GitHub repository. Issues serve as the central place to report bugs, request features, ask questions, and plan work. They are far more than a simple to-do list — when used effectively, issues become the backbone of how teams communicate about their software and track progress.
Understanding Issues
Think of issues as conversation threads tied to your codebase. Unlike emails or chat messages that get lost, issues remain attached to the repository where the code lives. They can be referenced from commits, pull requests, and other issues, creating a web of context that helps anyone understand why a change was made.
Every issue has:
- A title and description (using Markdown)
- A unique number (like #42)
- Labels for categorization
- Assignees who are responsible for the work
- A timeline showing all activity
- The ability to be linked to pull requests that fix them
Creating Effective Issues
A well-written issue saves time for everyone who reads it. Here is a template for bug reports:
For feature requests:
## Feature Description
Add dark mode support to the dashboard.
## Use Case
Many users work late at night and bright interfaces cause eye strain.
## Proposed Solution
Add a toggle in user settings that switches the color scheme.
Include auto-detection based on OS preference.
## Alternatives Considered
Browser extensions exist but don't style custom components properly.Working with Issues
Creating an issue from the command line using GitHub CLI:
gh issue create --title "Fix payment timeout" --body "Payment API times out after 5 seconds under load" --label "bug,high-priority"Listing open issues:
gh issue list
gh issue list --label "bug"
gh issue list --assignee "@me"Closing an issue via commit message:
git commit -m "Fix payment timeout by increasing connection pool
Closes #87"Keywords that auto-close issues: closes, fixes, resolves (and their variations).
Issue Labels
Labels categorize issues and make them filterable. Common label schemes:
By type:
bug— Something is brokenfeature— New functionality requestdocumentation— Documentation improvementsrefactor— Code improvement without behavior change
By priority:
priority: critical— Must fix immediatelypriority: high— Important, address soonpriority: medium— Normal prioritypriority: low— Nice to have
By status:
needs-triage— New issue, not yet categorizedin-progress— Someone is actively working on itblocked— Cannot proceed due to dependencygood-first-issue— Suitable for new contributors
Issue Templates
GitHub allows you to create issue templates that standardize how people report problems:
Create .github/ISSUE_TEMPLATE/bug_report.md:
Linking Issues to Pull Requests
The real power of issues emerges when linked to the code that addresses them:
# In your PR description
This PR implements the dashboard redesign.
Resolves #45
Partially addresses #38GitHub automatically creates visual connections between the issue and PR, and closes the issue when the PR is merged.
Issue Milestones
Milestones group issues into releases or sprints:
- Create a milestone called "v2.0 Release"
- Assign relevant issues to it
- Track percentage completion as issues close
- See which issues remain before you can ship
Searching and Filtering Issues
GitHub's issue search is powerful:
| is | issue is:open label:bug assignee:username |
| is | issue is:closed milestone:"v2.0" |
| is | issue created:>2024-01-01 sort:comments-desc |
Best Practices
One issue per topic. Do not combine multiple bugs or features into a single issue — it makes tracking and closing difficult.
Reference related issues. Use #number to link related issues: "This is related to #34 and may conflict with #56."
Update issues as work progresses. Leave comments with discoveries, decisions, and blockers. Future developers will thank you for the context.
Close issues with explanation. When closing without fixing, explain why: "Closing as won't-fix because this conflicts with our new architecture direction. See #89 for the replacement approach."
Key Takeaways
GitHub Issues is a lightweight but powerful project management tool built directly into your repository. Well-written issues with clear descriptions, proper labels, and links to related code make projects manageable at any scale. Use templates to standardize reporting, milestones to track releases, and commit message keywords to automatically close issues when fixes are merged.
Exam Focus
Revise definitions, diagrams, examples, and short-answer points for GitHub Issues.
Interview Use
Prepare one clear explanation, one practical example, and one common mistake for this Git & GitHub topic.
Search Terms
git-github, git & github, git, github, collaboration, issues, github issues
Related Git & GitHub Topics