GIT CHEAT SHEET                                                                                                                         V 1.1.
Git is the open source distributed version control system that facilitates GitHub activities on your laptop or
desktop. This cheat sheet summarizes commonly used Git command line instructions for quick reference.
INSTALL GIT                                                          MAKE CHANGES
GitHub provides desktop clients that include a graphical user        Review edits and craft a commit transaction
interface for the most common repository actions and an automati-
cally updating command line edition of Git for advanced scenarios.    $ git status
GitHub for Windows                                                    Lists all new or modified files to be committed
https://windows.github.com
                                                                      $ git diff
GitHub for Mac                                                        Shows file differences not yet staged
https://mac.github.com
                                                                      $ git add [file]
Git distributions for Linux and POSIX systems are available on the    Snapshots the file in preparation for versioning
official Git SCM web site.                                              $ git diff --staged
Git for All Platforms                                                 Shows file differences between staging and the last file version
http://git-scm.com
                                                                      $ git reset [file]
                                                                      Unstages the file, but preserve its contents
CONFIGURE TOOLING                                                     $ git commit -m "[descriptive message]"
Configure user information for all local repositories
                                                                      Records file snapshots permanently in version history
 $ git config --global user.name "[name]"
 Sets the name you want attached to your commit transactions
 $ git config --global user.email "[email address]"
                                                                     GROUP CHANGES
                                                                     Name a series of commits and combine completed efforts
 Sets the email you want attached to your commit transactions
                                                                      $ git branch
 $ git config --global color.ui auto
                                                                      Lists all local branches in the current repository
 Enables helpful colorization of command line output
                                                                      $ git branch [branch-name]
                                                                      Creates a new branch
CREATE REPOSITORIES                                                   $ git checkout [branch-name]
Start a new repository or obtain one from an existing URL
                                                                      Switches to the specified branch and updates the working directory
 $ git init [project-name]                                            $ git merge [branch]
 Creates a new local repository with the specified name               Combines the specified branch’s history into the current branch
 $ git clone [url]                                                    $ git branch -d [branch-name]
 Downloads a project and its entire version history                   Deletes the specified branch
          GIT CHEAT SHEET
REFACTOR FILENAMES                                                      REVIEW HISTORY
Relocate and remove versioned files                                     Browse and inspect the evolution of project files
 $ git rm [file]                                                         $ git log
 Deletes the file from the working directory and stages the deletion     Lists version history for the current branch
 $ git rm --cached [file]                                                $ git log --follow [file]
 Removes the file from version control but preserves the file locally    Lists version history for a file, including renames
 $ git mv [file-original] [file-renamed]                                 $ git diff [first-branch]...[second-branch]
 Changes the file name and prepares it for commit                        Shows content differences between two branches
                                                                         $ git show [commit]
                                                                         Outputs metadata and content changes of the specified commit
SUPPRESS TRACKING
Exclude temporary files and paths
 *.log
                                                                        REDO COMMITS
 build/                                                                 Erase mistakes and craft replacement history
 temp-*
                                                                         $ git reset [commit]
 A text file named .gitignore suppresses accidental versioning of
 files and paths matching the specified patterns                         Undoes all commits after [commit], preserving changes locally
 $ git ls-files --other --ignored --exclude-standard                     $ git reset --hard [commit]
 Lists all ignored files in this project                                 Discards all history and changes back to the specified commit
SAVE FRAGMENTS                                                          SYNCHRONIZE CHANGES
Shelve and restore incomplete changes                                   Register a repository bookmark and exchange version history
 $ git stash                                                             $ git fetch [bookmark]
 Temporarily stores all modified tracked files                           Downloads all history from the repository bookmark
 $ git stash pop                                                         $ git merge [bookmark]/[branch]
 Restores the most recently stashed files                                Combines bookmark’s branch into current local branch
 $ git stash list                                                        $ git push [alias] [branch]
 Lists all stashed changesets                                            Uploads all local branch commits to GitHub
 $ git stash drop                                                        $ git pull
 Discards the most recently stashed changeset                            Downloads bookmark history and incorporates changes
 Learn more about using GitHub and Git. Email the Training Team or visit                                         training@github.com
 our web site for learning event schedules and private class availability.                                       training.github.com