"Git and GitHub are no longer optional skills—they are the foundation of modern software development."
Why Version Control Exists
Before version control, developers solved the "multiple versions" problem the same way everyone else did: duplicate files. index.html, index_backup.html, index_2026-07-28.html, index_WORKING_DO_NOT_TOUCH.html. This works until the wrong file gets deployed, a backup gets accidentally overwritten, or two people edit the same file simultaneously and one person's work disappears entirely.
The real problem is not storage — it's the inability to answer three basic questions:
- What exactly changed since this last worked?
- Who changed it, and why?
- Can I get back to the version from two weeks ago without losing anything?
A version control system answers all three. It keeps a complete, timestamped history of every change, with a label and an author attached to each one — not just "what the file looks like now," but the entire sequence of how it got here.
What Git Is
Git is a version control system that runs entirely on your computer. It watches a folder (called a repository) and, whenever you instruct it to, takes a snapshot of the current state. That snapshot is called a commit. Every commit has a unique ID, a timestamp, and a message describing what changed and why.
Git is not a website. It is not a cloud service. It is a program you install, like Node.js or Python. When you run git commit, nothing leaves your machine. All history lives in a hidden folder called .git inside your project folder.
Three things Git permanently records for every commit:
- What changed — the exact lines added, removed, or modified in each file
- When it changed — a timestamp attached to the commit
- Who changed it and why — your name, email, and the commit message you write
That last point matters more than it seems. Six months from now, when something breaks in production, "who changed this and why" is the question that saves hours of debugging.
Git vs GitHub — The Distinction That Matters
This is where most people get confused early, and the confusion causes real problems later.
Git is the tool. It runs on your machine. It manages your local history.
GitHub is the service. It lives in the cloud. It hosts your repositories remotely.
Think of it this way: Git is like Word — a program installed on your computer that manages documents. GitHub is like OneDrive — a cloud service that stores and shares those documents. You can use Word without OneDrive. You can use Git without GitHub. But together, they are the standard combination for every serious development workflow.
GitHub adds collaboration features that Git alone does not provide: pull requests for reviewing code before it merges, issue tracking, project boards, and — critically for automated deployment — GitHub Actions, a CI/CD platform that can automatically build and deploy your application the moment you push code.
How RR Skillverse Uses Both
RR Skillverse is a live Node.js/Express platform: 148+ blog posts in a PostgreSQL-backed CMS, 6 Learning Paths, 13 free AI tools, an AI Academy with 53 Technology Topics, a site-wide feedback system, and an AI tutor called Axiom. The entire codebase lives in a Git repository on GitHub.
Every feature on the platform was tracked through Git. Concrete examples from the development history:
- The blog CMS migration from a static JavaScript file to an Azure PostgreSQL database — a major architectural change tracked across dozens of commits, each with a clear message explaining the decision behind it.
- The service worker cache version — bumped from v9 to v17 across development. Each bump is a single commit. If v14 introduced a caching bug, you can find the exact commit that changed it in seconds.
- The Learning Paths system — new database tables, API routes, HTML pages, and navigation links — introduced as a discrete, reviewable set of commits with a clear boundary between before and after.
- The site feedback system — its own commits covering the database table, the POST API endpoint, the widget JavaScript component, and the mobile entry point.
Deployment: push to main on GitHub → GitHub Actions triggers → code deploys to Azure App Service automatically. No manual file copying. No guessing which version is live. Without Git, any one of those deployments could have lost work permanently with no recovery path.
Installing Git
Git installation is a one-time operation. Steps differ by operating system.
Windows
Download the installer from git-scm.com/downloads. Run it and accept the defaults. The installer includes Git Bash, a terminal that understands both Git and Unix commands — use Git Bash for all commands in this series on Windows.
Mac
Git is bundled with Xcode Command Line Tools. Open Terminal and run:
xcode-select --install
A dialog will appear asking you to install the tools. Accept it.
Linux (Ubuntu / Debian)
sudo apt update && sudo apt install git
Verify after installation. Open your terminal and run:
git --version
You should see something like git version 2.45.2. The exact number doesn't matter — version 2.28 or later is all you need for this series.
Creating a GitHub Account
Go to github.com and click Sign up. Choose your username thoughtfully — it is permanent and public. It appears in every repository URL you create and on your developer profile. raushan-dev reads better than user3847261 in every professional context you'll encounter.
Use the same email address you will configure in Git on your machine. GitHub uses this to match your commits to your account and display your contribution history correctly.
Verify your email. GitHub requires email verification before you can create repositories. Check your inbox and click the link it sends.
No paid plan is required for anything in this series. The free tier includes unlimited public and private repositories.
🎯 Quick Check
Q1: If you run git commit on your laptop, does anything get sent to GitHub?
Show Answer
No. git commit only writes to the local .git folder on your machine. Data reaches GitHub only when you explicitly run git push. A commit is a purely local operation.
Q2: The RR Skillverse service worker cache was bumped from v9 to v17. Why is this easier to track with Git than without it?
Show Answer
With Git, each version bump is a commit with a timestamp, an author name, and a message. You can see exactly when v14 was introduced and compare it to v13 with a single command. Without Git, you only know the current version — there is no record of when or why previous versions existed.
Q3: A colleague says "just email me the updated file." What does Git solve that email cannot?
Show Answer
Email gives you the file, not the history. You can't see what changed between versions, who changed it, or why. You can't go back to a previous state. You can't merge two people's changes safely. Git answers all of these; email is a file-transfer tool, not a version control system.
Key Takeaways
- Git solves three problems that duplicate files cannot: what changed, who changed it, and how to go back
- Git is a local tool — commits stay on your machine until you explicitly push
- GitHub is a cloud hosting service — separate from Git, adds collaboration and CI/CD
- Real platforms use GitHub Actions to deploy automatically on every push — Git is the trigger for the entire pipeline
- Version 2.28 or later is sufficient; the free GitHub tier covers everything in this series