With tools like Git Desktop and Git for vscode, having a basic understanding of git bash can still be very beneficial. It's also great to have alternatives in your workflow.

Here are some everyday commands that I find helpful.

Commands that reveal

ls -a # List files and folders within directory git status # See what's changed on current directory git diff # Shows un-staged & staged difference git diff --staged # Shows staged & most recent commit difference git log --oneline # Displays each commit on one line git log --oneline --parents # Shows parent-child relationship in log  

Create a new git repository

cd .. # Go to parent directory (main) mkdir dir-name # Make a new directory and name it git init # Creates a new repository in the directory ".git" 

Modify file structure

touch file-name-01 file-name-02 # Create 1 or more files rm file-name-01 # Remove a file 

Stage, Commit push to remote repository

git add * # Stage all files git commit -m "your message here" # Commit and add message git push # Sends commit to GitHub 

Override most recent commit with new changes

git add my_file.html # Stage 1 file git add * # Stage all files git commit --amend --no-edit # Commit update & keep previous message git push --force-with-lease # Push update to remote repository 

Branch / Merge

Note: Before merging, ensure you are on the correct branch (usually main) before proceeding.

git branch branch_name # Creates new "FEATURE" branch git switch branch_name # Go to a different branch git switch -c branch_name # Creates and switches to new branch git branch # Shows all branches  git merge branch_name # Merges branch into main git branch -d branch_name # Deletes the merged branch