git命令手册

568 查看

git config

1、配置全局用户名
git config --global user.name "你的名字"

2、配置全局email
git config --global user.email "你的Email"

git clone

在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动"追踪"origin/master分支。

1、从远程主机克隆一个版本库,到本地生成的同名目录
git clone <版本库的网址>

2、从远程主机克隆一个版本库,到本地指定的目录
git clone <版本库的网址> <本地目录名>

3、git clone支持HTTP(s)、SSH、Git、本地文件协议等多种协议

$ git clone http[s]://example.com/path/to/repo.git/
$ git clone ssh://example.com/path/to/repo.git/
$ git clone [user@]example.com:path/to/repo.git/
$ git clone git://example.com/path/to/repo.git/
$ git clone /opt/git/project.git 
$ git clone file:///opt/git/project.git
$ git clone ftp[s]://example.com/path/to/repo.git/
$ git clone rsync://example.com/path/to/repo.git/

4、克隆指定主机名的版本库
git clone -o <指定主机名> <版本库网址>

git remote

Git要求每个远程主机都必须指定一个主机名,git默认的远程主机名为origin,git remote命令就用于管理主机名。

1、列出所有远程主机
git remote
2、查看远程主机地址
git remote -v
3、查看指定主机的详细信息
git remote show <主机名>
4、添加远程主机
git remote add <主机名> <网址>
5、删除远程主机
git remote rm <主机名>
6、修改远程主机名
git remote rename <原主机名> <新主机名>

git fetch

远程主机的版本库有了更新,该命令可以将这些更新取回本地,fetch取回的代码不会和本地的代码合并,因此常用来看别人的开发进度。

1、获取远程主机的更新到本地(默认取回所有分支)
git fetch <远程主机名>
2、获取远程主机指定分支的更新到本地
git fetch <远程主机名> <分支名>

所取回的更新,在本地主机上要用"远程主机名/分支名"的形式读取。比如origin主机的master,就要用origin/master读取。

git branch

1、查看所有分支

$ git branch -a
* master  //本地主机的当前分支是master
remotes/origin/master  //远程分支是origin/master

2、查看远程分支
git branch -r
3、手动建立追踪关系
git branch --set-upstream <本地分支名> <远程分支名(如origin/next)>

git checkout

1、创建新分支(在取回的远程分支基础上 fetch+branch)
git checkout -b <新分支名> <远程分支名(如origin/master)>

git merge

1、合并分支(在当前本地分支上,合并远程分支)
git merge <远程分支名(如origin/master)>

git rebase

1、合并分支(在当前本地分支上,合并远程分支)
git merge <远程分支名(如origin/master)>

git pull

取回远程分支的更新,并与本地分支合并。fetch+merge

1、取回远程分支,和当前本地分支合并
git pull <远程主机名> <远程分支名>
2、取回远程分支,和指定本地分支合并
git pull <远程主机名> <远程分支名>:<本地分支名>
3、省略写法1:当前本地分支和远程分支,存在追踪关系
git pull origin
4、省略写法2:当前本地分支只有一个追踪分支
git pull
5、rebase方式合并
git pull --rebase <远程主机名> <远程分支名>:<本地分支名>

如果远程主机删除了某个分支,默认情况下,git pull不会在拉取远程分支的时候,删除对应的本地分支。这是为了防止,由于其他人操作了远程主机,导致git pull不知不觉删除了本地分支。但是参数 -p可以在本地删除远程已经删除的分支

6、删除(已删除的远程分支)对应的本地分支

git pull -p
# 等同于下列写法
git fetch --prune origin
git fetch -p

git push

该命令将本地分支的更新,推送到远程主机

1、推送本地更新到远程分支(完全写法)
git push <远程主机名> <本地分支名>:<远程主机名>
2、推送本地更新到远程分支(具有追踪关系)

git push origin master 
 //将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。

3、推送本地分支到远程分支(删除远程分支)

git push <远程主机名> :<远程分支>
$ git push origin  :master
# 等同于
$ git push origin --delete master