Git 可以自动补全命令(按Tab)
Git 可以给命令起别名
Git默认开发分支:master
Git 默认远程版本库:origin
1、git的初始化配置
$ git config –global user.name “your name ”
$ git config –global user.email “your email”
基本的配置就结束了,你可以使用$ git config –list 查看你的配置
2、基本用法图解:

上面的四条命令在工作目录、暂存目录(也叫做索引)和仓库之间复制文件。
3、创建版本库
使用cd命令到你想创建版本库的文件目录下
$ git clone <url> #克隆远程版本库到本地
$ git init #初始化版本地版本库
$ git add test.txt #把test.txt文件放入暂存区
$ git add . #把当前目录所有改动的文件放入暂存区
$ git diff #查看更改的内容
$ git diff HEAD –readme.txt #查看工作区和版本库里面最新版本的区别
$ git commit test.txt -m “commit message” #把test.txt提交
$ git commit –a –m “message” #相当于运行 git add 把所有当前目录下的文件加入暂存区再运行git commit.新添加的文件使用该命令无法提交
$ git status #查看当前文件状态,还会提示你下一步怎么走[多使用]
$ git cherry-pick <commit id> #对已经存在的commit 进行再次提交
$ git fsck –lost-found #检查丢失的提交
4、更新和修改
$ git fetch origin #更新内容
$ git mv <old> <new> #文件改名
$ git rm <file> #删除文件
$ git rm –cached <file> #文件不加入暂存区但不删除
5、查看提交历史
$ git reflog #查看版本号和历史【与log有区别,版本返回后,使用该命令可以查看返回之前的历史】
$ git log #查看提交历史
$ git log –p <file> #查看指定文件的提交历史
$ git log –oneline #一行显示
$ git log –stat #显示一些概要
$ git log –grep=”Something in the message” #查找
$ git log –author=”hante” #显示所有关于hante提交的信息
$ git log –since=2015-08-01 #查看从2015-08-01至今的历史
$ git help log #查看更多关于log命令的参数
$ git blame <file> #以列表形式查看详细信息
$ gitk #图形显示提交历史
6、撤销操作
$ git reset –hard HEAD #撤销工作目录中所有未提交文件的修改
$ git checkout –<file> #取消工作区对文件的修改【危险操作】
$ git revert <commit> #撤销指定的提交
$ git commit –amend #撤消刚才的提交操作
7、分支与标签
$ git branch #显示所有本地分支
$ git checkout <branch/tag> #切换到指定分支或标签
$ git branch <new-branch> #创建新分支
$ git branch –d <branch> #删除本地分支
$ git push <本地仓库名>:<Github端分支> 同步到github上删除该分支
$ git tag #列出所有本地标签
$ git tag <tagname> #基于最新提交创建标签
$ git tag –d <tagname> #删除标签

$ git tag –a V1.0.1 4b30ela #给图上往期提交加上V1.0.1标签
$ git show V1.0.1 #显示该标签对应的log
$ git push origin [tagname] #标签推送到远程版本库中
$ git push –tags #把所有标签上传远程
8、合并分支
$ git merge <branch> #合并指定分支到当前分支
$ git branch –merged #查看哪些分支已被并入当前分支
$ git branch –no-merged #查看尚未合并的分支
$ git branch -d branch-name #删除分支
$ git remote –v #查看远程分支信息
$ git remote add <branch> <url> 远程端加新分支
$ git push origin newbranch #推送本地分支到远程端
$ git checkout -b newbranch origin/newbranch #在本地新建和远程一样的分支第一个newbranch可更改
$ git checkout –track origin/newbranch #跟踪远程分支
$ git push <本地仓库名>:<branch/tag-name> 删除远程分支或标签
git push <远程名> <本地分支>:<远程分支> 删除远程分支
9、Git命令别名
$ git config –global alias.ci commit
现在,如果要输入 git commit 只需键入 git ci 即可
$ git config –global alias.last ‘log -1 HEAD’
$ git last相当于 $git log -1 HEAD
$ git config –global alias.lg “log –color –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit”
执行 $ git lg
10、Git 挂钩[钩子] hooks:

当某些重要事件发生时,Git 以调用自定义脚本,这些脚本叫挂钩。挂钩都被存储在 Git 目录下的hooks子目录中,即大部分项目中的.git/hooks。在Git 1.6版本之后,这些样本名都是以.sample结尾。在Git 1.6版本之前,这些样本名都是正确的,但这些样本不是可执行文件,需要修改权限。可以根据开发的需要更改钩子文件。
更多内容:
http://www.git-scm.com/book/zh
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000