Welcome, brave coder, to the Official Unofficial GitHub Manual! Prepare to have your expectations both met and hilariously subverted. This guide will take you on a journey through the treacherous landscape of Git, GitHub, and the subtle art of not accidentally destroying production.
-
Contributing: How to Make Other People's Code Slightly Less Awful
-
GitHub Actions: Automating All the Things (Except Your Job Security)
-
git init: The incantation that transforms a humble folder into a version-controlled nightmare. -
git add: Tells Git, "Yes, I meant to do that," even when you're not entirely sure. -
git commit -m "Fixes everything": The classic commit message. Guaranteed to be a lie. -
git push: Sends your code to the cloud, where it will either be praised or ridiculed. -
git pull: Downloads the latest changes, which may or may not conflict horribly with your local code. -
git branch: Creates a parallel universe where you can experiment without fear... until you merge. -
git merge: The point of no return. May result in glorious harmony or utter chaos. -
git clone: Copies a repository. Like photocopying, but with more opportunities for things to go wrong. -
git status: A daily reminder of how much you've screwed up.
-
Repositories: Where code goes to live... and breed.
-
Organizations: A place for teams to collaborate... or argue.
-
Stars: A vanity metric. Collect them all!
-
Followers: Like Twitter, but for code. (Still a vanity metric.)
-
Pull Requests: See below.
-
Issues: See below.
-
Gists: For code snippets too embarrassing for a full repo.
-
Wikis: Collaborative documentation... that's usually out of date.
-
Projects: Attempts to organize the chaos. Good luck with that.
-
Notifications: A constant barrage of emails you'll never read.
-
Dark Mode: For when you want to feel even more like a hacker.
-
Create a branch. (See Git Basics)
-
Write some code. (Hopefully it works.)
-
Submit a Pull Request (PR). This is where you politely ask your colleagues to tear your code apart.
-
Address feedback. (Or, if you're feeling brave, argue about it.)
-
Merge (or, if you're not so lucky, get rejected).
-
Celebrate (or wallow in despair).
-
Opening an issue: Documenting a problem. Or, if you're a user, complaining.-
-
Assigning an issue: Giving someone else the problem.-
-
Commenting on an issue: Adding your two cents. (Which may or may not be helpful.)-
-
Closing an issue: Declaring victory! (Or, more likely, giving up.)-
-
Labels: Attempts to categorize the un категоризируемое. e.g., "bug", "enhancement", "wontfix", "duplicate", "question", "help wanted", "invalid", "wont fix", "needs investigation", "critical", "urgent", "high priority", "low priority".-
-
Milestones: Setting deadlines you'll inevitably miss.
-
Fork the repository. (See The Joy of Forking)
-
Make changes. (See Git Basics)
-
Submit a Pull Request. (See Pull Requests)
-
Wait for the maintainers to either:
-
a) Ignore you.
-
b) Nitpick your code to death.
-
c) Reluctantly accept your changes.
-
-
Feel a brief moment of satisfaction.
-
git rebase: Rewriting history. Fun for the whole family! -
git cherry-pick: Stealing commits from other branches. -
git reflog: The emergency room for Git. -
git reset --hard: The nuclear option. Use with extreme caution (and backups). -
Merge conflicts: The inevitable result of collaboration. May cause hair loss.
-
Submodules: Git's way of saying "I heard you like repositories, so I put a repository in your repository".
-
YAML files: Because indentation matters. A lot.
-
Workflows: Define CI/CD pipelines.
-
Jobs: Steps within a workflow.
-
Steps: Individual commands.
-
Secrets: Store sensitive information (and then accidentally leak them).
-
Marketplace: A place to find pre-built actions. Some are useful!
-
gh-pagesbranch: The magic branch that turns your code into a website. -
Jekyll: A simple static site generator. (Or is it?)
-
Custom domains: For when you want to take your cat blog seriously.
-
Themes: Pre-designed layouts. Choose wisely.
-
Commiting secrets: A classic mistake.
-
Hardcoding passwords: Why not?
-
Ignoring security warnings: Living on the edge.
-
Exposing
.envfiles: The gift that keeps on giving. -
Cross-Site Scripting (XSS): Because making your website interactive wasn't dangerous enough.
-
SQL Injection: For when you want to give attackers full access to your database.
-
Forking a repo: Creating your own copy of someone else's project.
-
Upstream: The original repository you forked from.
-
Keeping in sync: The never-ending battle to merge changes from upstream.
-
Contributing back: The circle of (code) life. Or just abandoning your fork.
-
Adding a README to your profile: Show the world who you are!
-
ASCII art: Because text is boring.
-
Badges: Show off your skills (or lack thereof).
-
Stats cards: Display your contributions.
-
Top languages: Prove you know more than just "Hello, World!". Or that you only know one language.
-
Starring a repo: Show your appreciation.
-
Collecting stars: A hobby for the lonely nights.
-
Unstarring a repo: The ultimate betrayal.
-
Star gazers: People who starred your repo. Your fans! (or stalkers?)
-
Trending repos: The cool kids' club.
Congratulations! You've reached the end of this utterly essential guide. You are now a certified GitHub Guru. Go forth and conquer... or at least try not to break anything.