Skip to the content.

🚀 GitHub Learning Journey


📅 Learning Roadmap

1. Setting Up and Creating Your First Repo **Goal:** Get started with GitHub CLI and make your first commit. | Task No. | Description | Link | |-----------|-------------|------| | 1 | Install and authenticate GitHub CLI | [View Details](/github-learning/days/day-01.html) | | 2 | Create a new repository using CLI | [View Details](/github-learning/days/day-02.html) | | 3 | Clone the repository locally | [View Details](/github-learning/days/day-03.html) | | 4 | Add a file and commit changes | [View Details](days/day-04.md) | | 5 | Push your first commit to GitHub | [View Details](days/day-05.md) |
2. Keeping Your Local Repo Updated **Goal:** Sync your local repository with the latest changes from remote. | Task No. | Description | Link | |-----------|-------------|------| | 1 | Fetch and pull the latest commits | [View Details](days/day-06.md) | | 2 | Resolve simple merge updates | [View Details](days/day-07.md) | | 3 | Verify your branch is up to date | [View Details](days/day-08.md) | | 4 | Understand fast-forward vs merge pulls | [View Details](days/day-09.md) |
3. Forking and Working on Someone Else’s Repo **Goal:** Contribute to open source or a team repo. | Task No. | Description | Link | |-----------|-------------|------| | 1 | Fork a public repository using GitHub CLI | [View Details](days/day-10.md) | | 2 | Clone your fork locally | [View Details](days/day-11.md) | | 3 | Create a new branch for your feature or fix | [View Details](days/day-12.md) | | 4 | Make changes and commit | [View Details](days/day-13.md) | | 5 | Push your branch to your fork | [View Details](days/day-14.md) | | 6 | Create a Pull Request (PR) using GitHub CLI | [View Details](days/day-15.md) |
4. Managing Branches in Your Own Repo **Goal:** Work on multiple features independently. | Task No. | Description | Link | |-----------|-------------|------| | 1 | Create a new branch | [View Details](days/day-16.md) | | 2 | Switch between branches | [View Details](days/day-17.md) | | 3 | Merge branches into main | [View Details](days/day-18.md) | | 4 | Delete old branches | [View Details](days/day-19.md) | | 5 | Handle a simple merge conflict | [View Details](days/day-20.md) | | 6 | View branch history and graph | [View Details](days/day-21.md) |
5. Collaborating with Team Members **Goal:** Learn real collaboration workflows. | Task No. | Description | Link | |-----------|-------------|------| | 1 | Add a collaborator to your repo | [View Details](days/day-22.md) | | 2 | Review a teammate’s Pull Request | [View Details](days/day-23.md) | | 3 | Comment and approve using CLI | [View Details](days/day-24.md) | | 4 | Merge PR into main | [View Details](days/day-25.md) | | 5 | Handle conflicts during merging | [View Details](days/day-26.md) | | 6 | Sync your fork with upstream repository | [View Details](days/day-27.md) |
6. Managing Issues and Feature Requests **Goal:** Track bugs and feature requests efficiently. | Task No. | Description | Link | |-----------|-------------|------| | 1 | Create an issue from GitHub CLI | [View Details](days/day-28.md) | | 2 | Assign issue to yourself or teammate | [View Details](days/day-29.md) | | 3 | Link issue to a branch or PR | [View Details](days/day-30.md) | | 4 | Close issue automatically with commit message | [View Details](days/day-31.md) | | 5 | Use labels and milestones | [View Details](days/day-32.md) |
7. Version Control and Rollbacks **Goal:** Control your project’s history. | Task No. | Description | Link | |-----------|-------------|------| | 1 | View commit history and diffs | [View Details](days/day-33.md) | | 2 | Undo last commit (soft and hard resets) | [View Details](days/day-34.md) | | 3 | Revert a mistaken commit | [View Details](days/day-35.md) | | 4 | Stash temporary changes | [View Details](days/day-36.md) | | 5 | Tag important versions (v1.0, v1.1, etc.) | [View Details](days/day-37.md) |
8. Automating with GitHub Actions **Goal:** Automate repetitive tasks (CI/CD). | Task No. | Description | Link | |-----------|-------------|------| | 1 | Create your first workflow file (YAML) | [View Details](days/day-38.md) | | 2 | Run actions on every push | [View Details](days/day-39.md) | | 3 | Add build/test automation | [View Details](days/day-40.md) | | 4 | Set up secrets for workflows | [View Details](days/day-41.md) | | 5 | Debug failed workflow runs | [View Details](days/day-42.md) |
9. Managing Releases **Goal:** Package and release your software. | Task No. | Description | Link | |-----------|-------------|------| | 1 | Create a release with GitHub CLI | [View Details](days/day-43.md) | | 2 | Upload assets to release | [View Details](days/day-44.md) | | 3 | Automate release notes | [View Details](days/day-45.md) | | 4 | Tag the release version | [View Details](days/day-46.md) | | 5 | View release history | [View Details](days/day-47.md) |
10. Authentication and Permissions **Goal:** Secure your workflow. | Task No. | Description | Link | |-----------|-------------|------| | 1 | Use SSH key authentication | [View Details](days/day-48.md) | | 2 | Generate a Personal Access Token | [View Details](days/day-49.md) | | 3 | Configure credential storage | [View Details](days/day-50.md) | | 4 | Fix “permission denied” errors | [View Details](days/day-51.md) | | 5 | Manage team permissions on GitHub | [View Details](days/day-52.md) |
11. Troubleshooting Common Issues **Goal:** Recover quickly when things go wrong. | Task No. | Description | Link | |-----------|-------------|------| | 1 | Fix merge conflicts manually | [View Details](days/day-53.md) | | 2 | Restore deleted files or branches | [View Details](days/day-54.md) | | 3 | Handle “detached HEAD” | [View Details](days/day-55.md) | | 4 | Reconnect or change remote URLs | [View Details](days/day-56.md) | | 5 | Clean untracked files safely | [View Details](days/day-57.md) |
12. Real-World DevOps and Automation Tasks **Goal:** Move from learning to applying in production-like use cases. | Task No. | Description | Link | |-----------|-------------|------| | 1 | Auto-deploy a static site via GitHub Actions | [View Details](days/day-58.md) | | 2 | Backup your repo automatically using Actions | [View Details](days/day-59.md) | | 3 | Use GitHub CLI with Docker containers | [View Details](days/day-60.md) | | 4 | Manage multiple projects and forks efficiently | [View Details](days/day-61.md) | | 5 | Integrate GitHub with CI/CD or monitoring tools | [View Details](days/day-62.md) |
13. Advanced Practical Challenges **Goal:** Level up your command fluency and workflow optimization. | Task No. | Description | Link | |-----------|-------------|------| | 1 | Create a feature branch workflow for a team | [View Details](days/day-63.md) | | 2 | Squash commits before merging | [View Details](days/day-64.md) | | 3 | Rebase your feature branch | [View Details](days/day-65.md) | | 4 | Create and manage submodules | [View Details](days/day-66.md) | | 5 | Automate issue creation using CLI scripts | [View Details](days/day-67.md) |
14. Project and Documentation Management **Goal:** Make your repo more professional. | Task No. | Description | Link | |-----------|-------------|------| | 1 | Add README, LICENSE, and CONTRIBUTING files | [View Details](days/day-68.md) | | 2 | Create templates for issues and PRs | [View Details](days/day-69.md) | | 3 | Organize project board (Kanban style) | [View Details](days/day-70.md) | | 4 | Add discussions section | [View Details](days/day-71.md) | | 5 | Automate project updates using Actions | [View Details](days/day-72.md) |

🎯 Goals of This Project

  1. Build a solid foundation in GitHub CLI.
  2. Document learning in a way that’s easy to follow for others.
  3. Create a ready reference for real-world development & deployment.

✅ Why Use CLI Instead of GUI?