D
CREATE A REPOSITORY | GIT ADD AND COMMIT | ||
$ git init | $ git add . | ||
Create a new local repository | Add all current changes to the staging area | ||
$ git clone git@github.com:<repo-name> | $ git add <file> | ||
Clone an existing repository from GitHub | Add all current changes in a file to the staging area | ||
Status and history | $ git commit | ||
$ git status | Commit all staged changes (will prompt for a message) | ||
Show the status of a repository | |||
$ git commit –m "commit message" | |||
$ git diff | Commit all staged changes with a message | ||
Show changes in tracked files | |||
$ git commit -a | |||
$ git log | Stage and commit all changes (will prompt for a message) | ||
Show all commits, starting with newest in verbose form | |||
$ git commit –am "commit message" | |||
$ git log --oneline | Stage and commit all changes with a message | ||
Show all commits—one commit per line | |||
BRANCHES | |||
$ git log --oneline --graph | $ git branch -av | ||
Show all commits —one commit per line with branch graph | List all branches | ||
$ git log –p <file> | $ git branch <new-branch> | ||
Show changes for a specific file | Create a new branch based on the current head | ||
$ git blame <file> | $ git checkout <branch> | ||
Who change what and when in a specific file | Switch to a different branch | ||
TAGS | $ git branch -d <branch> | ||
$ git tag --list | Delete a branch | ||
List all tags | |||
$ git checkout --track <remote/branch> | |||
$ git tag <tag-name> | Create a new tracking branch based on a remote branch | ||
Tag the current commit point with a lightweight tag | |||
MERGE | |||
$ git tag –a <tag-name> | $ git merge <branch> | ||
Tag the current commit point with an annotated tag | Merge <branch> in to the current branch | ||
$ git tag –d <tag-name> | $ git mergetool | ||
Delete a tag | Start the configured merge tool | ||
$ git tag <tag-name> <commit-hash> | UPDATE AND PUBLISH | ||
Tag a specific commit hash | $ git remote add <connection-name> | ||
Add new remote repository, named <connection-name> | |||
Reset and checkout | |||
$ git reset --hard HEAD | $ git remote -v | ||
Discard all local changes in your working directory | List all configured remotes | ||
$ git reset --hard <commit> | $ git remote show <remote> | ||
Reset to a specific commit point (discards working changes) | Show specific information about a remote | ||
$ git reset --mixed <commit> | $ git fetch <remote> | ||
Reset to a specific commit point (preserving unstaged changes) | Download all changes from <remote>,but don‘t integrate into head | ||
$ git reset --soft <commit> | $ git pull | ||
Reset to a specific commit point (preserving uncommitted changes) | Download changes and directly merge into current branch | ||
$ git reset <tag-name> --hard | $ git pull <remote> <branch> | ||
Reset to a specific tag (discards working changes) | Download changes from specific repository and branch, directly | ||
$ git reset <tag-name> --mixed | $ git push | ||
Reset to a specific tag (preserving unstaged changes) | Publish local changes on current branch to the current remote | ||
$ git reset <tag-name> --soft | $ git push <remote> <branch> | ||
Reset to a specific tag (preserving uncommitted changes) | Publish local changes to specific repository and branch | ||
$ checkout –b <newbranch> | $ git branch -dr <remote/branch> | ||
Create a new branch based on a previous commit point | Delete a branch on the remote | ||
DIRECTORIES AND TERMINAL | FILES | ||
$ clear | $ rm <file> | ||
Clears the terminal window | Delete <file> | ||
$ pwd | $ rm -f <file> | ||
Display path of current working directory | Force delete <file> (if it is in use) | ||
$ cd <directory> | $ mv <file-old> <file-new> | ||
Change directory to <directory> | Rename <file-old> to <file-new> | ||
$ cd .. | $ mv <file> <directory> | ||
Change to parent directory | Move <file> to <directory> (will overwrite an existing file) | ||
$ rm -r <directory> | $ cp <file> <directory> | ||
Delete <directory>, use –rf to force delete | Copy <file> to <directory> (will overwrite an existing file) | ||
$ ls | $ cp -r <directory1> <directory2> | ||
List directory contents (ls can be replaced with dir) | Copy <directory1> and its contents to <directory2> (will overwrite) | ||
$ ls -la | $ touch <file> | ||
List detailed directory contents, including hidden files (same as dir) | Create file | ||
$ mkdir <directory> | OUTPUT | ||
Create new <directory> | $ cat <file> | ||
Output the contents of <file> | |||
SEARCH | |||
$ find <dir> -name "<file>" | $ less <file> | ||
Find all files named <file> inside <dir> (wildcards *, ? can be used) | Output the contents of <file> with pagination | ||
$ grep "<text>" <file> | $ head <file> | ||
Output all occurrences of <text> inside <file> (add -i for case-insensitivity) | Output the first 10 lines of <file> | ||
$ grep -rl "<text>" <dir> | $ <cmd> > <file> | ||
Search for all files containing <text> inside <dir> | Direct the output of <cmd> into <file> use >> instead to append the output of <cmd> to <file> |
||