Skip to content

Latest commit

 

History

History
282 lines (225 loc) · 4.35 KB

Git Cheat Sheet-Eng.md

File metadata and controls

282 lines (225 loc) · 4.35 KB

Git Cheat Sheet English

###Index


###Create

Clone an existing repository:

$ git clone ssh://[email protected]/repo.git

Create a new local repository:

$ git init

###Local Changes

Changed files in your working directory:

$ git status

Changes to tracked files:

$ git diff

Add all current changes to the next commit:

$ git add

Add some changes in <file> to the next commit:

$ git add -p <file>

Commit all local changes in tracked files:

$ git commit -a

Commit previously staged changes:

$ git commit

Commit with message:

$ git commit -m 'message here'

Commit to some previous date:

git commit --date="`date --date='n day ago'`" -am "Commit Message"

Change last commit:
Don't amend published commits!

$ git commit --amend

Move uncommited changes from current branch to some other branch:

git stash
git checkout branch2
git stash pop

###Search

A text search on all files in the directory:

$ git grep "Hello"

In any version of a text search:

$ git grep "Hello" v2.5

###Commit History

Show all commits, starting with newest (it'll show the hash, author information, date of commit and title of the commit):

$ git log

Show all the commits (it'll show just the commit hash and the commit message)

$ git log --oneline

Show all commits of a specific user

$ git log --author="username"

Show changes over time for a specific file:

$ git log -p <file>

Who changed, what and when in <file>:

$ git blame <file>

###Branches & Tags

List all existing branches:

$ git branch

Switch HEAD branch:

$ git checkout <branch>

Create a new branch based on your current HEAD:

$ git branch <new-branch>

Create a new tracking branch based on a remote branch:

$ git branch --track <new-branch> <remote-branch>

Delete a local branch:

$ git branch -d <branch>

Mark the current commit with a tag:

$ git tag <tag-name>

###Update & Publish

List all current configured remotes:

$ git remote -v

Show information about a remote:

$ git remote show <remote>

Add new remote repository, named <remote>:

$ git remote add <remote> <url>

Download all changes from <remote>, but don't integrate into HEAD:

$ git fetch <remote>

Download changes and directly merge/integrate into HEAD:

$ git remote pull <remote> <url>

Get all changes from HEAD to local repository:

$ git pull origin master

Publish local changes on a remote:

$ git push remote <remote> <branch>

Delete a branch on the remote:

$ git push <remote> :<branch> (since Git v1.5.0)
or
git push <remote> --delete <branch> (since Git v1.7.0)

Publish your tags:

$ git push --tags

###Merge & Rebase

Merge into your current HEAD:

$ git merge <branch>

Rebase your current HEAD onto <branch>:
Don't rebase published commit!

$ git rebase <branch>

Abort a rebase:

$ git rebase --abort

Continue a rebase after resolving conflicts:

$ git rebase --continue

Use your configured merge tool to solve conflicts:

$ git mergetool

Use your editor to manully solve conflicts and (after resolving) mark file as resolved:

$ git add <resolved-file>
$ git rm <resolved-file>

###Undo

Discard all local changes in your working directory:

$ git reset --hard HEAD

Get all the files out of the staging area (i.e. undo the last git add)

$ git reset HEAD

Discard local changes in a specific file:

$ git checkout HEAD <file>

Revert a commit (by producing a new commit with contrary changes):

$ git revert <commit>

Reset your HEAD pointer to a previous commit and discard all changes since then:

$ git reset --hard <commit>

Reset your HEAD pointer to a previous commit and preserve all changes as unstaged changes:

$ git reset <commit>

Reset your HEAD pointer to a previous commit and preserve uncommitted local changes:

$ git reset --keep <commit>