Git命令快速参考

一、准备工作

配置全局用户名和电子邮件地址:

prompt> git config  -global user.name "your name"
prompt> git config  -global user.email "you@example.com"

创建新版本库:

prompt> git init

克隆版本库:

prompt> git clone git@github.com:username/repository.git

二、Git中的概念

指定版本

HEAD        #最近的一次提交
HEAD^        #HEAD之前的那个提交
HEAD~1        #HEAD之前的那个提交
HEAD^^        #HEAD早俩个的那个提交
HEAD~2        #HEAD早俩个的那个提交

三、提交变更

添加新文件或者暂存已有文件上的改动,然后提交:

prompt> git add <some file>
prompt> git commit -m "<some message>"

取消已经暂存但是未提交的变更的暂存标识:

prompt> git reset HEAD <some file>

修复一次提交中的问题:

prompt> git add <some file>
prompt> git commit -amend

四、使用分支

start point可以是一个分支 ,标签或提交的名称

列出已有分支:

prompt> git branch

只列出远程分支:

prompt> git branch -r

列出所用分支:

prompt> git branch -a

创建新分支:

prompt> git branch new-branch existing

切换到另一条分支:

prompt> git checkout branch-name

创建新分支并检出:

prompt> git checkout -b new-branch existing

把一条分支合并到另一条分支上:

prompt> git checkout <another>
prompt> git merge <one>

五、撤销变更

反转某个提交

prompt> git revert <commit>

删除工作目录树的变更:

prompt> git checkout some/file
#注意:此操作不可撤回

在版本中撤销已经提交的变更,并在工作目录树中清除:

prompt> git reset -hard HEAD^
#注意:此操作不可撤回

六、浏览历史记录

显示历史记录

#所有历史记录
prompt>git log
#只显示最近五个提交
prompt>git log -5
#并显示文件内容的变化
prompt> git log -5 -p
#显示至少是两天前的提交
prompt> git log -5 -p -berfore=="2 days"

显示版本的差异

#工作目录树与暂存区的差异
prompt> git diff
#暂存区域版本库的差异
prompt> git diff -cached
#工作目录树与版本库的差异
prompt> git diff HEAD
#两个提交之间的差异
prompt> git diff <start> <end>

问责
prompt> git blame

七、与远程版本库的互动

克隆版本库

prompt> git clone <some repository>

只克隆最经200次提交

prompt> git clone -depth 200 <some repository>

在本地版本库设置远程版本库的别名:

prompt> git remote add <remote repository> <repository url>

取消变更(不包含合并到本地分支):

prompt> git fetch <remote repository>

拖入变更(包含合并到本地分支):

prompt> git pull <remote repository>

把变更推入到远程版本库:

prompt> git push <some repository>