Git Sheet

Create

Clone an existing repository

git clone ssh://user@domain.tld/repo.git

Clone an existing repository and all its sub-modules recursively

git clone --recursive ssh://user@domain.tld/repo.git

Create a new local repository

git init

 

Local Changes

List changed files in your working directory

git status 

List changes to tracked files

git diff

Add all current changes to the next commit

git add .

Add some changes to the next commit

git add -p fileName

Commit all local changes in tracked files

git commit -a

Commit previously staged changes

git commit

Change the last commit

git commit --amend

Note: You shouldn't amend published commits!

 

Commit History

Show all commits

git log

Show changes over time for a specific file

git log -p fileName

Show changes over time for a specific committer

git log --author=committerName

Note: committerName is a pattern, so Ed will match Edward Smith. Quotes are optional if the pattern doesn't contain spaces.

Who changed what and when in file

git blame fileName

Store changes temporarily

git stash

Remove and apply stashed changes

git stash pop

 

Branches & Tags

List all existing branches

git branch

Switch HEAD branch

git checkout branchName

Create a new branch based on your current HEAD

git branch branchName

Create a new tracking branch based on a remote branch

git branch --track newBranchName remoteBranchName

Delete a local branch

git branch -d branchName

Delete a remote branch

git push origin --delete branchName

Tag the current commit

git tag tagName

 

Update & Publish

List all currently configured remotes

git remote -v

Show information about a remote

git remote show remoteName

Add new remote repository

git remote add remoteName url

Download all changes from remote, but don't merge into HEAD

git fetch remoteName

Download all changes from remote, but don't merge into HEAD and clean up deleted branches from origin

git fetch -p remoteName

Download changes and directly merge into HEAD

git pull remoteName branchName

Publish local changes on a remote

git push remoteName branchName

Track a remote repository

git remote add --track remoteBranchName remoteName url

Publish your tags

git push --tags

 

Merge

Merge branch into your current HEAD

git merge branchName

Rebase your current HEAD onto branch

git rebase branchName

Note: You shouldn't rebase published commits!

 

Rebase

Abort a rebase

git rebase --abort

Continue a rebase after resolving conflicts

git rebase --continue

Resolve conflicts using your configured merge tool

git mergetool

Manually resolve conflicts using your editor and mark file as resolved

git add resolvedFileName
git rm resolvedFileName

 

Undo

Discard all local changes in your working directory

git reset --hard HEAD

Discard local changes in a specific file

git checkout HEAD fileName

Revert a commit by providing a new commit with contrary changes

git revert commitId

Restore a specific file from a previous commit

git checkout commitId fileName

Reset your HEAD pointer to a previous commit

Discarding local changes

git reset --hard commitId

Preserving all changes as unstaged changes

git reset commitId

Preserving uncommitted local changes

git reset --keep commitId
posted @ 2015-05-11 21:53  Xwoder  阅读(309)  评论(0编辑  收藏  举报