/images/avatar.png

Hi! I'm Pratyaksha.

Git Cheat Sheet

Setup

  • User name: git config --global user.name "[firstname lastname]"
  • Email: git config --global user.email "[valid-email]"
  • Color: git config --global color.ui auto

Initialization and cloning

  • Make your current folder a git repo: git init
  • Clone a repo: git clone [url]

Staging and commits

  • Get status of staged, unstages and untracked files: git status
  • Add files to staging: git add [file]
  • Remove a file from staging: git reset [file]
  • Remove a file from staging and remove all changes: git reset --hard [file]
  • Differences in files that are modified but not staged: git diff
  • Differences in files that are staged but not committed: git diff --staged
  • Commit changes: git commit -m "[message]"
  • Commit only specific portion of a file: git add -p [file]
    Note: Git will go into interactive mode and prompt options for actions on each hunk.
  • Add current staged changes to the previous commit: git commit --amend
    Note: Avoid amending a commit after they’ve been pushed.
  • Undo all changes of the latest commit: git revert HEAD
  • Undo all changes of a specific commit: git revert [commit-sha]
  • Change a file but never commit it (hide from git): git update-index --skip-worktree [file]
    Note: Used to avoid accidentally committing config files (for example DB credentials) that are modified for local setup.
  • Undo previous command (unhide from git): git update-index --no-skip-worktree [file]

Branch and merge

  • List all branches and highlight current branch: git branch
  • Switch to another branch: git checkout [branch-name]
  • Create a new branch and switch to it: git checkout -b [branch name]
  • Delete a branch: git branch -d [branch-name]
  • Merge another branch to current branch: git merge [branch-name]
  • Rebase the current branch to the top of master: git rebase master

Tags

  • List all tags: git tag
  • Create a tag for current commit: git tag [tag-name]
  • Create a tag for specific commit: git tag [tag-name] [commit-sha]
  • Delete a tag: git tag -d [tag-name]

Inspect changes

  • Commit history of current branch: git log
  • Show commits that changed a file: git log --follow [file]
  • Show commit history as a graph: git log --graph --oneline

Interacting with remote repo

  • Add a git URL as remote: git remote add origin [url]
  • Get all changes from remote branch: git pull
  • Send all local changes to remote branch: git push
  • Merge a remote branch to current: git merge origin\[branch-name]

Temporary commits

  • Save all changes: git stash
  • Restore changes from stash: git stash pop
  • Discard the top of stash: git stash drop

Covid Vaccine Availability Dashboard

From May 1st, the government of India has opened several vaccination centers for people aged between 18 to 45. The vaccines are scarce and logging into Cowin app to check status is cumbersome due to frequent timeouts. The government has also made a public API to access vaccine related information like finding availability and downloading vaccination certificates. Using this, I have made a dashboard that makes it easy to find vaccine availability by district or pincode.