guide·starter·updated 2026-07-21·10 minutes to read, keep it bookmarked forever

Git & GitHub Quick Guide

A minimal, high-velocity guide for daily Git and GitHub operations. Use this reference to get up to speed in minutes.

GitGitHubWorkflowReference

Setup & identity

Configure your identity globally. This metadata is attached to all your commits.

# Configure username and email
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# Check your configuration
git config --list

Daily development cycle

Follow this lifecycle for day-to-day coding:

  1. Switch branch
  2. Write code
  3. Stage changes
  4. Commit
  5. Push to GitHub

Step 1: create a feature branch

Always isolate your changes on a new branch. Avoid committing directly to main.

git switch -c feature/new-cool-feature

Step 2: stage & commit changes

Stage files when they reach a logical checkpoint and commit them with a descriptive message.

# Stage specific files
git add path/to/file.js

# Stage all changes
git add .

# Save staged changes to history
git commit -m "feat: implement user registration form"

Step 3: push and pull

Keep your local repository in sync with GitHub.

# Push your branch for the first time (sets tracking)
git push -u origin feature/new-cool-feature

# Push subsequent changes
git push

# Pull the latest changes from the remote main branch
git pull origin main

Merging vs. rebasing

When integrating changes from main into your feature branch:

  • Merge (git merge main) — use when integrating finished features. Preserves detailed history; adds a merge commit.
  • Rebase (git rebase main) — use when syncing your local branch with the latest main. Linearizes history; rewrites commit hashes.

Undoing mistakes

  • Discard local changes in a file — git restore <file> — reverts the file to its last committed state.
  • Unstage a staged file — git restore --staged <file> — removes the file from staging, keeps your edits.
  • Undo last commit, keep changes — git reset --soft HEAD~1 — pulls the changes back into the staging area.
  • Undo last commit, delete changes — git reset --hard HEAD~1 — destroys all changes since the last commit.
  • Revert a pushed commit safely — git revert <commit-hash> — creates a new commit that undoes the specified commit.

Stashing & saving work

Use stash to temporarily shelve your current changes if you need to switch branches quickly without committing incomplete work.

# Save uncommitted changes
git stash -m "wip: auth implementation"

# List saved stashes
git stash list

# Restore your latest stash and delete it from the stash list
git stash pop

# Restore a stash but keep it in the list
git stash apply stash@{0}

Resolving merge conflicts

Conflicts occur when Git cannot auto-merge changes — for example, the same line edited on two different branches.

  1. Locate conflicts — run git status to see conflicting files.
  2. Edit files — look for conflict markers in your code.
  3. Resolve & commit — choose which code to keep, delete the markers (<<<<<<<, =======, >>>>>>>), then stage and commit.
<<<<<<< HEAD
const URL = "https://api.production.com";
=======
const URL = "https://api.staging.com";
>>>>>>> feature/new-cool-feature
git add <resolved-file>
git commit -m "chore: resolve merge conflict"

Fast commands reference

  • Initialize repo — git init
  • Clone repo — git clone <url>
  • Check status — git status
  • View differences — git diff
  • View commit history — git log --oneline --graph
  • List branches — git branch
  • Delete branch — git branch -d <branch-name>
  • Create tag — git tag -a v1.0.0 -m "Release v1.0.0"
  • Push tags — git push origin --tags

Got stuck, or want this shipped end-to-end for you? bitroot.club builds custom products for founders. →