An open API service indexing awesome lists of open source software.

https://github.com/edelstone/git-cheatsheet

Atlassian's Git cheatsheet as a website, for those that like a non-PDF version.
https://github.com/edelstone/git-cheatsheet

atlassian cheatsheet git github resources tutorials

Last synced: 11 months ago
JSON representation

Atlassian's Git cheatsheet as a website, for those that like a non-PDF version.

Awesome Lists containing this project

README

          

# Git Cheatsheet

## The Basics

| Command | Explanation |
|------------|-------------|
| `git init ` | Create empty Git repo in specified directory. Run with no arguments to initialize the current directory as a git repository. |
| `git clone ` | Clone repo located at `` onto local machine. Original repo can be located on the local filesystem or on a remote machine via `HTTP` or `SSH`. |
| `git config user.name ` | Define author name to be used for all commits in current repo. Devs commonly use `--global` flag to set config options for current user. |
| `git add ` | Stage all changes in `` for the next commit. Replace `` with a `` to change a specific file. |
| `git commit -m ""` | Commit the staged snapshot, but instead of launching a text editor, use `` as the commit message. |
| `git status` | List which files are staged, unstaged, and untracked. |
| `git log` | Display the entire commit history using the default format. For customization see additional options. |
| `git diff` | Show unstaged changes between your index and working directory. |

## Undoing Changes

| Command | Explanation |
|------------|-------------|
| `git revert ` | Create new commit that undoes all of the changes made in ``, then apply it to the current branch. |
| `git reset ` | Remove `` from the staging area, but leave the working directory unchanged. This unstages a file without overwriting any changes. |
| `git clean -n` | Shows which files would be removed from working directory. Use the `-f` flag in place of the `-n` flag to execute the clean. |

## Rewriting Git History

| Command | Explanation |
|------------|-------------|
| `git commit --amend` | Replace the last commit with the staged changes and last commit combined. Use with nothing staged to edit the last commit’s message. |
| `git rebase ` | Rebase the current branch onto ``. `` can be a commit ID, a branch name, a tag, or a relative reference to `HEAD`. |
| `git reflog` | Show a log of changes to the local repository’s `HEAD`. Add `--relative-date` flag to show date info or `--all` to show all refs. |

## Branches

| Command | Explanation |
|------------|-------------|
| `git branch` | List all of the branches in your repo. Add a `` argument to create a new branch with the name ``. |
| `git checkout -b ` | Create and check out a new branch named ``. Drop the `-b` flag to checkout an existing branch. |
| `git merge ` | Merge `` into the current branch. |

## Remote Repositories

| Command | Explanation |
|------------|-------------|
| `git remote add ` | Create a new connection to a remote repo. After adding a remote, you can use `` as a shortcut for `` in other commands. |
| `git fetch ` | Fetches a specific ``, from the repo. Leave off `` to fetch all remote refs. |
| `git pull ` | Fetch the specified remote’s copy of current branch and immediately merge it into the local copy. |
| `git push ` | Push the branch to , along with necessary commits and objects. Creates named branch in the remote repo if it doesn’t exist. |

# Additional Options

## git config

| Command | Explanation |
|------------|-------------|
| `git config --global user.name ` | Define the author name to be used for all commits by the current user. |
| `git config --global user.email ` | Define the author email to be used for all commits by the current user. |
| `git config --global alias. ` | Create shortcut for a Git command. E.g. `alias.glog log --graph --oneline` will set `git glog` equivalent to `git log --graph --oneline`. |
| `git config --system core.editor ` | Set text editor used by commands for all users on the machine. `` arg should be the command that launches the desired editor (e.g., vi). |
| `git config --global --edit` | Open the global configuration file in a text editor for manual editing. |

## git log

| Command | Explanation |
|------------|-------------|
| `git log -` | Limit number of commits by ``. E.g. `git log -5` will limit to 5 commits. |
| `git log --oneline` | Condense each commit to a single line. |
| `git log -p` | Display the full diff of each commit. |
| `git log --stat` | Include which files were altered and the relative number of lines that were added or deleted from each of them. |
| `git log --author=""` | Search for commits by a particular author. |
| `git log --grep=""` | Search for commits with a commit message that matches ``. |
| `git log ..` | Show commits that occur between `` and ``. Args can be a commit ID, branch name, `HEAD`, or any other kind of revision reference. |
| `git log -- ` | Only display commits that have the specified file. |
| `git log --graph --decorate` | `--graph` flag draws a text based graph of commits on left side of commit msgs. `--decorate` adds names of branches or tags of commits shown. |

## git diff

| Command | Explanation |
|------------|-------------|
| `git diff HEAD` | Show difference between working directory and last commit. |
| `git diff --cached` | Show difference between staged changes and last commit. |

## git reset

| Command | Explanation |
|------------|-------------|
| `git reset` | Reset staging area to match most recent commit, but leave the working directory unchanged. |
| `git reset --hard` | Reset staging area and working directory to match most recent commit and **overwrites all changes** in the working directory. |
| `git reset ` | Move the current branch tip backward to ``, reset the staging area to match, but leave the working directory alone. |
| `git reset --hard ` | Same as previous, but resets both the staging area & working directory to match. **Deletes** uncommitted changes, and **all commits after** ``. |

## git rebase

| Command | Explanation |
|------------|-------------|
| `git rebase -i ` | Interactively rebase current branch onto ``. Launches editor to enter commands for how each commit will be transferred to the new base. |

## git pull

| Command | Explanation |
|------------|-------------|
| `git pull --rebase ` | Fetch the remote’s copy of current branch and rebases it into the local copy. Uses git rebase instead of merge to integrate the branches. |

## git push

| Command | Explanation |
|------------|-------------|
| `git push --force` | Forces the `git push` even if it results in a non-fast-forward merge. Do not use the `--force flag` unless you’re absolutely sure you know what you’re doing |
| `git push --all` | Push all of your local branches to the specified remote. |
| `git push --tags` | Tags aren’t automatically pushed when you push a branch or use the `--all` flag. The `--tags` flag sends all of your local tags to the remote repo. |

# Credits

Thank you [Atlassian](https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet) for the content in this cheat sheet.

## Great resources for Git

- [GitHub's Git resources](https://try.github.io/)
- [Atlassian's Git tutorials](https://www.atlassian.com/git/tutorials)