git config
1、配置全局用户名git config --global user.name "你的名字"
2、配置全局emailgit 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/
Git协议下载速度最快
SSH协议用于需要用户认证的场合
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