--- title: "Git cheat sheet" slug: "git-bash-command-line-cheat-sheet" description: "Click here and view the Git Bash command line cheat sheet to advance your processes." updated: 2024-03-25T17:19:17Z published: 2024-03-25T17:19:17Z canonical: "learn.allspice.io/git-bash-command-line-cheat-sheet" --- > ## Documentation Index > Fetch the complete documentation index at: https://learn.allspice.io/llms.txt > Use this file to discover all available pages before exploring further. # Git bash | command line cheat sheet ## Setup Global user information settings Set the name you will use to add changes to the repo ``` git config --global user.name "[firstname lastname]" ``` Set the email address will use to add changes to the repo ``` git config --global user.email "[valid-email]" ``` Format colors for easy review ``` git config --global color.ui auto ``` ## Initialization Configuring new repos Initialize an existing directory as a repo ``` git init ``` Copy entire remote repo to current directory ``` git clone [url] ``` ## Staging Working with your local filesystem repo Show modified files in your working directory. These files are staged for your next commit ``` git status ``` Diff list of what files have changed, but are not staged ``` git diff ``` Display diff list of what files have been staged, but not committed ``` git diff --staged ``` Add a file as-is to your next commit, aka stage the file ``` git add [file] ``` Stage all changes in [directory] for the next commit ``` git add [directory] ``` Remove file from staging, but keep the changes ``` git reset [file] ``` Commit your staged files as a new commit ``` git commit -m "[descriptive message]" ``` ## Branching and merging Organize your changes into branches and merge them together List your branches. Your currently active branch will have a * next to it ``` git branch ``` Create a new branch [branch-name] at the current commit ``` git branch [branch-name] ``` Switch to another branch and check it out to your current working directory ``` git switch ``` Merge [branch-name]'s history into the current branch ``` git merge [branch-name] ``` Display all commits in the current branch's history ``` git log ``` ## Inspect and compare Display commits that are on branchA but not on branchB ``` git log branchB..branchA ``` Display the commits of the file, even across renames ``` git log --follow [file] ``` Display the diff of what is in branchA but not branchB ``` git diff branchB...branchA ``` Display any git object in human-readable format ``` git show [SHA] ``` ## Tracking Changes Removing and moving files Delete the local file and stage the removal for commit ``` git rm [file] ``` Change or rename existing file path and stage the change for commit ``` git mv [existing-path] [new-path] ``` Display all commit logs of filepaths that have been moved ``` git log --stat -M ``` ## Ignoring patterns Prevent uninentional staging or commiting of files Add filter to .gitignore to avoid committing these files. Can use string literals or use "*" wildcard ``` logs/ *.notes pattern*/ ``` Global ignore pattern for all local system repos ``` git config --global core.excludesfile [file] ``` ## Share & Update Retrieve updates from a different repo and update local repos Add a git URL as an alias ``` git remote add [alias] [url] ``` Fetch all the branches from the remote alias repo ``` git fetch [alias] ``` Merge a remote branch into your current branch ``` git merge [alias]/[branch] ``` Transfer your local branch commits to the remote branch repo ``` git push [alias] [branch] ``` Fetch and merge any commits from the tracking remote branch ``` git pull ``` ## Rewrite history Rewrite branches, update commites, and clear history Apply any commits of current branch ahead of specified branch ``` git rebase [branch] ``` Clear staging area, rewrite working tree from specified commit ``` git reset --hard [commit] ``` Replace the previous commit with the stange changes and last commit combined. Use with nothing staged to edit the last commit's message. ``` git commit --amend ``` Create a new commit that undoes all the changes in [commit], then apply it to the current branch ``` git revert [commit] ``` Shows which files would be removed from working directory by clean ``` git clean -n ``` Removes files from working directory ``` git clean -f ``` ## Temporary commits Temporarily store modified and tracked files in order to change branches Save modified and staged changes and reverts to pre-change status ``` git stash ``` Display list stack-order of stashed file changes in the file ``` git stash list ``` Write working files from top of stash stack ``` git stash pop ``` Discard the changes from the top of the stash stack ``` git stash drop ```