$ mkdir learngit
$ cd learngit
$ pwd
$ls -sh
$ git init
$ git add readme.txt
$ git add --all
$ git add --A
$ git commit -m "wrote a readme file"
$ git status
$ git diff readme.txt
$ git diff HEAD -- readme.txt
回到某个点上
$ git reset --hard id
显示内容
$ cat readme.txt
$ git reset HEAD readme.txt
删除文件,git上没删除
$ rm test.txt
删除文件,git上都删除
$ git rm test.txt
把本地库添加到远程空库上
$ git remote add origin git@github.com:xxxxx/xxxx.git
第一次把推送到远程master分支
$ git push -u origin master
推送到远程master分支上
$ git push origin master
推送到远程上对应分支上
$ git push
$ git checkout -- readme.txt
创建+切换分支:
$ git checkout -b dev
切换分支:
$ git checkout dev
建立本地分支和远程分支的关联
$ git branch --set-upstream branch-name origin/branch-name
在本地创建和远程分支对应的分支
$ git checkout -b branch-name origin/branch-name
合并某分支到当前分支:
$ git merge dev
查看分支:
$ git branch
创建分支:
$ git branch dev
删除分支:
$ git branch -d dev
无合并,删除分支:
$ git branch -D dev
当前分支下的日志
$ git log
当前分支下的日志,最后一条
$ git log -1
git log的简洁版
$ git log --pretty=oneline
分支合并图
$ git log --graph
git log --pretty=oneline的简洁版
$ git log --pretty=oneline --abbrev-commit
所有分支日志
$ git reflog
隐藏现在工作区状态,等下次在恢复
$ git stash
显示隐藏的状态
$ git stash list
恢复隐藏区内容,但不删除隐藏内容
$ git stash apply stash@{0}
删除隐藏区内容
$ git stash drop
恢复隐藏区内容,删除隐藏区内容
$ git stash pop
获取远程库名
$ git remote
获取远程库信息
$ git remote -v
添加标签,tagName自己定义的名称
$ git tag tagName
查看标签
$ git tag
删除标签
$ git tag -d v0.1
推送标签到远程,tagName自己定义的名称
$ git push origin tagName
一次性推送全部尚未推送到远程的本地标签
$ git push origin --tags
删除远程标签,tagName自己定义的名称
$ git push origin :tagName
区别名:例如status 别名st
$ git config --global alias.st status
详细内容参考:http://gitwww.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
原文:http://www.cnblogs.com/clarence/p/4885469.html