Before this week, "Git" and "GitHub" were basically the same word to me. Turns out they're not even close. Git is the thing that runs quietly on your own machine, tracking every change you make. GitHub is just where you choose to back that history up online. You can use Git your whole life and never touch GitHub. I didn't know that.
Here's the moment it clicked: I had a messy .py file. Wednesday it worked. By Thursday, after "fixing" some visualizations, it didn't. Without Git, that's just a dead project. With Git, every one of those working versions is a commit, a saved checkpoint you can always go back to. That's it. That's the whole magic trick.
Turning a folder into a repo
I had a local folder full of scripts and no version history at all. Two commands fixed that:
git init
git add .
git commit -m "Initial project setup"
init tells Git "start watching this folder." add stages what I want tracked. commit locks it in as a checkpoint. Small, boring, and weirdly satisfying.
Where SSH actually fits in
This part confused me the most going in. SSH isn't about Git itself. It's about proving to GitHub it's really you pushing code, without typing a password every time. You generate two keys: a private one that never leaves your laptop, and a public one you hand to GitHub.
ssh-keygen -t ed25519 -C "your_email@example.com"
I pressed Enter through the file location prompt (default is fine for a first key) and set a passphrase. Then I added the key to my SSH agent so I wouldn't get pestered for it constantly:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Copied the public key (id_ed25519.pub, never the private one) into GitHub under Settings > SSH and GPG keys > New SSH key. Then tested it:
ssh -T git@github.com
Got a "Hi username! You've successfully authenticated" message and felt an unreasonable amount of pride about it.
Connecting local to remote
Last step: link the local repo to an actual GitHub repository (created empty, no README, to avoid conflicts) and push.
git remote add origin git@github.com:yourusername/your-repo.git
git branch -M main
git push -u origin main
Refreshed GitHub, and there it was, my messy little script, now with a real history, sitting online.
What actually stuck with me
The biggest shift wasn't the commands, it was the mental model: your computer owns the history, GitHub just stores a copy of it. Push sends your commits up. Pull brings changes down. Everything else is details.
If you're starting this same week, my honest advice: don't rush the SSH part just to "get to the good stuff." It's the part that stops making sense retroactively once you understand why it exists as a way to authenticate, not a hoop to jump through.
Tell me your experience with Git and GitHub.
Top comments (0)