GIT CHEATSHEET
Tags: git, github, beginners, programming
Published: 2021-11-06 09:25:19

[Git](https://git-scm.com/) is the free and open-source distributed version control system that's responsible for everything [GitHub](https://github.com/mrdanishsaleem) related that happens locally on your computer.

This cheat sheet features the most important and commonly used Git commands for easy reference.

## SETUP

Configuring user information used across all local repositories

```bash
git config --global user.name "[firstname lastname]"
Set a name that is identifiable for credit when reviewing version history
```

```bash
git config --global user.email "[valid-email]"
Set an email address that will be associated with each history marker
```

```bash
git config --global color.ui auto
Set automatic command line coloring for Git for easy reviewing
```

## SETUP & INIT

Configuring user information, initializing and cloning repositories

```bash
git init
Initialize an existing directory as a Git repository
```

```bash
git clone [url]
Retrieve an entire repository from a hosted location via URL
```

## STAGE & SNAPSHOT

Working with snapshots and the Git staging area

```bash
git status
Show modified files in the working directory, staged for your next commit
```

```bash
git add [file]
Add a file as it looks now to your next commit (stage
```

```bash
git reset [file]
Unstaged a file while retaining the changes in the working directory
```

```bash
git diff
Diff of what is changed but not staged
```

```bash
git diff --staged
Diff of what is staged but not yet committed
```

```bash
git commit -m “[descriptive message]”
Commit your staged content as a new commit snapshot
```

## BRANCH & MERGE

Isolating work in branches, changing context, and integrating changes

```bash
git branch
List your branches. a * will appear next to the currently active branch
```

```bash
git branch [branch-name]
Create a new branch at the current commit
```

```bash
git checkout
Switch to another branch and check it out in your working directory
```

```bash
git merge [branch]
Merge the specified branch’s history into the current one
```

```bash
git log
Show all commits in the current branch’s history
```

## INSPECT & COMPARE

Examining logs, diffs, and object information

```bash
git log
Show the commit history for the currently active branch
```

```bash
git log branchB..branchA
Show the commits on branch A that are not on branch B
```

```bash
git log --follow [file]
Show the commits that changed file(s), even across renames
```

```bash
git diff branch B...branch A
Show the diff between what is in branch A that is not in branch B
```

```bash
git show [SHA]
Show any object in Git in human-readable format
```

## TRACKING PATH CHANGES

Versioning file removes and path changes

```bash
git rm [file]
Delete the file from the project and stage the removal for commit
```

```bash
git mv [existing-path] [new-path]
Change an existing file path and stage the move
```

```bash
git log --stat -M
Show all commit logs with an indication of any paths that moved
```

## IGNORING PATTERNS

Preventing unintentional staging or committing of files

```bash
logs/
*.notes
pattern*/
Save a file with desired patterns as .gitignore with either direct string
matches or wildcard globs.
```

```bash
git config --global core.excludesfile [file]
System-wide ignore pattern for all local repositories
```

## SHARE & UPDATE

Retrieving updates from another repository and updating local repos

```bash
git remote add [alias] [url]
Add a git URL as an alias
```

```bash
git fetch [alias]
Fetch down all the branches from that Git remote
```

```bash
git merge [alias]/[branch]
Merge a remote branch into your current branch to bring it up to date
```

```bash
git push [alias] [branch]
Transmit local branch commits to the remote repository branch
```

```bash
git pull
Fetch and merge any commits from the tracking remote branch
```

## REWRITE HISTORY

Rewriting branches, updating commits, and clearing history

```bash
git rebase [branch]
Apply any commits of the current branch ahead of the specified one
```

```bash
git reset --hard [commit]
Clear staging area, rewrite working tree from the specified commit
```

## TEMPORARY COMMITS

Temporarily store modified, tracked files to change branches

```bash
git stash
Save modified and staged changes
```

```bash
git stash list
List stack-order of stashed file changes
```

```bash
git stash pop
Write working from the top of the stash stack
```

```bash
git stash drop
Discard the changes from the top of the stash stack
```

---

### Let's connect 💜

[![Twitter](https://img.shields.io/badge/MrDanishSaleem-%231DA1F2.svg?style=for-the-badge&logo=Twitter&logoColor=white)](https://twitter.com/MrDanishSaleem) [![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white)](https://github.com/mrdanishsaleem/) [![LinkedIn](https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/mrdanishsaleem/) [![Stack Overflow](https://img.shields.io/badge/-Stackoverflow-FE7A16?style=for-the-badge&logo=stack-overflow&logoColor=white)](https://stackoverflow.com/users/11249940/mrdanishsaleem) [![Google](https://img.shields.io/badge/google-4285F4?style=for-the-badge&logo=google&logoColor=white)](https://g.dev/mrdanishsaleem) [![Discord](https://img.shields.io/badge/%3CServer%3E-%237289DA.svg?style=for-the-badge&logo=discord&logoColor=white)](https://discord.com/users/890596597610737774/) [![Dev.to blog](https://img.shields.io/badge/dev.to-0A0A0A?style=for-the-badge&logo=dev.to&logoColor=white)](https://dev.to/mrdanishsaleem)

## Support me 🤝

[![BuyMeACoffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://www.buymeacoffee.com/mrdanishsaleem)