Git Cheat Sheet by Nathan (I definitely didn't copy and paste this from some guy's blog or anything (°¿°) Configure git config –global user.name "[name]" Sets the name you want attached to your commit transactions git config –global user.email "[email address]" Sets the email you want attached to your commit transactions git config –global color.ui auto Enables helpful colorization of command line output git config –global push.default current Update a branch with the same name as current branch if no refspec is given git config –global core.editor [editor] Which editor to use when commit and tag that lets you edit messages git config –global diff.tool [tool] Specify which command to invoke as the specified tool for git difftool Create repositories git init [project-name] Creates a new local repository with the specified name git clone [url] Downloads a project nd its entire version history Make changes git status Lists all new or modified files to be committed git status -s Short view of status git diff Shows file differences not yet staged git add [file] Snapshots the file in preparation for versioning git add . Add all modified files to be commited git add '*.txt' Add only certain files git add –patch filename.x (or -p for short) Snapshot only chunks of a file git rm [file] Tell git not to track the file anymore git diff –staged Show what has been added to the index via git add but not yet committed git diff HEAD Shows what has changed since the last commit. git diff HEAD^ Shows what has changed since the commit before the latest commit git diff [branch] Compare current branch to some other branch git difftool -d Same as diff, but opens changes via difftool that you have configured git difftool -d master.. See only changes made in the current branch git diff –no-commit-id –name-only –no-merges origin/master… See only the file names that has changed in current branch git diff –stat See statistics on what files have changed and how git reset [file] Unstages the file, but preserves its contents git commit Record changes to git. Default editor will open for a commit message git commit -m "[descriptive message]" Records file snapshots permanently in version history git commit –amend Changing the history, of the HEAD commit Group changes git branch Lists all local branches in the current directory git branch [branch-name] Create a new branch git checkout [branch-name] Switches to the specified branch and updates the working directory git checkout -b / Switches to a remote branch git checkout [filename] Return file to it's previous version, if it hasn’t been staged yet git merge [branch] Combines the specified branch's history into the current branch git merge –no–ff [branch] Merge branch without fast forwarding git branch -a See the full list of local and remote branches git branch -d [branch] Deletes the specified branch git branch -D [branch] Hard branch delete, will not complain git branch -m Rename a branch Refactor filenames git rm [file] Deletes the file from the working directory and stages the deletion git rm –cached [file] Removes the file from version control but preserves the file locally git mv [file-original] [file-renamed] Changes the file name and prepares it for commit Suppress tracking .gitignore *.log build/ temp-* A text file named .gitignore suppresses accidental versioning of files and paths matching the specified patterns git ls-files –other –ignored –exclude-standard Lists all ignored files in this project Save fragments git stash Temporarily stores all modified tracked files git stash pop Restores the most recently stashed files git stash list Lists all stashed changesets git stash drop Discards the most recently stashed changeset Review history git log Lists version history for the current branch git log –follow [file] Lists version history for a file, including renames git log –pretty=format:"%h %s" –graph Pretty commit view, you can customize it as much as you want git log –author='Name' –after={1.week.ago} –pretty=oneline –abbrev-commit See what the author has worked on in the last week git log –no-merges master.. See only changes in this branch git diff [file-branch]…[second-branch] Shows content differences between two branches git show [commit] Outputs metadata and content changes of the specified commit Redo commits git reset Unstage pending changes, the changes will still remain on file system git reset [commit/tag] Undoes all commits after [commit], preserving changes locally git reset –hard [commit] Discards all history and changes back to the specified commit Synchronize changes git fetch [bookmark] Downloads all history from the repository bookmark git fetch -p Update history of remote branches, you can fetch and purge git merge [bookmark]/[branch] Combines bookmark's branch into current local branch git push Push current branch to remote branch git push [remote] [branch] Manually specify remote and branch to use every time git push -u origin master If a remote branch is not set up as an upstream, you can make it so git pull Downloads bookmark history and incorporates changes git pull [remote] [branch] Specify to pull a specific branch git remote See list of remote repos available git remote -v Detailed view of remote repos available git remote add [remote] [url] Add a new remote