-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
jordanmccullough
committed
Apr 15, 2014
1 parent
0537b78
commit 32356d8
Showing
1 changed file
with
235 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,235 @@ | ||
# GitHub Git Cheat Sheet | ||
|
||
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 | ||
GitHub provides desktop clients that include a graphical user interface for the most common repository actions and an automatically updating command line edition of Git for advanced scenarios. | ||
|
||
### GitHub for Windows | ||
http://windows.github.com | ||
|
||
### GitHub for Mac | ||
http://mac.github.com | ||
|
||
Git distributions for Linux and POSIX systems are available on the official Git SCM web site. | ||
|
||
### Git for all platforms | ||
http://git-scm.com | ||
|
||
## Configure tooling | ||
Configure user information for all local repositories | ||
|
||
|
||
```$ 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 | ||
|
||
|
||
## Create repositories | ||
Start a new repository or obtain one from an existing URL | ||
|
||
|
||
```$ git init [project-name]``` | ||
|
||
Creates a new local repository with the specified name | ||
|
||
|
||
```$ git clone [url]``` | ||
|
||
Downloads a project and its entire version history | ||
|
||
## Make changes | ||
Review edits and craft a commit transaction | ||
|
||
|
||
```$ git status``` | ||
|
||
Lists all new or modified files to be committed | ||
|
||
|
||
```$ git diff``` | ||
|
||
Shows file differences not yet staged | ||
|
||
|
||
```$ git add [file]``` | ||
|
||
Snapshots the file in preparation for versioning | ||
|
||
|
||
```$ git diff --staged``` | ||
|
||
Shows file differences between staging and the last file version | ||
|
||
|
||
```$ git reset [file]``` | ||
|
||
Unstages the file, but preserves its contents | ||
|
||
|
||
```$ git commit -m"[descriptive message]"``` | ||
|
||
Records file snapshots permanently in version history | ||
|
||
## Group changes | ||
Name a series of commits and combine completed efforts | ||
|
||
|
||
```$ git branch``` | ||
|
||
Lists all local branches in the current repository | ||
|
||
|
||
```$ git branch [branch-name]``` | ||
|
||
Creates a new branch | ||
|
||
|
||
```$ git checkout [branch-name]``` | ||
|
||
Switches to the specified branch and updates working directory | ||
|
||
|
||
```$ git merge [branch-name]``` | ||
|
||
Combines the specified branch’s history into the current branch | ||
|
||
|
||
```$ git branch -d [branch-name]``` | ||
|
||
Deletes the specified branch | ||
|
||
|
||
## Refactor file names | ||
Relocate and remove versioned files | ||
|
||
|
||
```$ 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 prepare it for commit | ||
|
||
## Suppress tracking | ||
Exclude temporary files and paths | ||
|
||
``` | ||
*.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 | ||
Shelve and restore incomplete changes | ||
|
||
|
||
```$ git stash``` | ||
|
||
Temporarily stores all modified tracked files | ||
|
||
|
||
```$ git stash pop``` | ||
|
||
Restores the most recent stashed files | ||
|
||
|
||
```$ git stash list``` | ||
|
||
Lists all stashed changesets | ||
|
||
|
||
```$ git stash drop``` | ||
|
||
Discards the most recently stashed changeset | ||
|
||
## Review history | ||
Browse and inspect the evolution of project files | ||
|
||
|
||
```$ git log``` | ||
|
||
Lists version history for the current branch | ||
|
||
|
||
```$ git log --follow [file]``` | ||
|
||
Lists version history for the file, including renames | ||
|
||
|
||
```$ git diff [first-branch]...[second-branch]``` | ||
|
||
Shows content differences between two branches | ||
|
||
|
||
```$ git show [commit]``` | ||
|
||
Outputs metadata and content changes of the specified commit | ||
|
||
## Redo commits | ||
Erase mistakes and craft replacement history | ||
|
||
|
||
```$ git reset [commit]``` | ||
|
||
Undoes all commits after `[commit]`, preserving changes locally | ||
|
||
|
||
```$ git reset --hard [commit]``` | ||
|
||
Discards all history and changes back to the specified commit | ||
|
||
## Synchronize changes | ||
Register a repository bookmark and exchange version history | ||
|
||
|
||
```$ git fetch [bookmark]``` | ||
|
||
Downloads all history from the repository bookmark | ||
|
||
|
||
```$ git merge [bookmark]/[branch]``` | ||
|
||
Combines bookmark’s branch into current local branch | ||
|
||
|
||
```$ git push [alias] [branch]``` | ||
|
||
Uploads all local branch commits to GitHub | ||
|
||
|
||
```$ git pull``` | ||
|
||
Downloads bookmark history and incorporates changes | ||
|
||
--- | ||
|
||
## GitHub Training | ||
Learn more about using GitHub and Git. Email the Training Team or visit our web site for learning event schedules and private class availability. | ||
|
||
* [email protected] | ||
* training.github.com |