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.
- Host: GitHub
- URL: https://github.com/edelstone/git-cheatsheet
- Owner: edelstone
- Created: 2017-05-25T22:29:17.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-06-02T17:37:23.000Z (over 7 years ago)
- Last Synced: 2025-01-24T08:43:33.002Z (about 1 year ago)
- Topics: atlassian, cheatsheet, git, github, resources, tutorials
- Homepage: https://edelstone.github.io/git-cheatsheet/
- Size: 3.91 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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)