一、配置全局用户名git config --global user.name "你的名字"
git
二、配置全局emailgit config --global user.email "你的Email"
ssh
在git clone的时候,全部本地分支默认与远程主机的同名分支,创建追踪关系,也就是说,本地的master分支自动"追踪"origin/master分支。fetch
一、从远程主机克隆一个版本库,到本地生成的同名目录git clone <版本库的网址>
code
二、从远程主机克隆一个版本库,到本地指定的目录git clone <版本库的网址> <本地目录名>
开发
三、git clone支持HTTP(s)、SSH、Git、本地文件协议等多种协议rem
$ 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协议下载速度最快get
SSH协议用于须要用户认证的场合it
各协议优劣比较ast
四、克隆指定主机名的版本库git clone -o <指定主机名> <版本库网址>
email
Git要求每一个远程主机都必须指定一个主机名,git默认的远程主机名为origin,git remote命令就用于管理主机名。
一、列出全部远程主机git remote
二、查看远程主机地址git remote -v
三、查看指定主机的详细信息git remote show <主机名>
四、添加远程主机git remote add <主机名> <网址>
五、删除远程主机git remote rm <主机名>
六、修改远程主机名git remote rename <原主机名> <新主机名>
远程主机的版本库有了更新,该命令能够将这些更新取回本地,fetch取回的代码不会和本地的代码合并,所以经常使用来看别人的开发进度。
一、获取远程主机的更新到本地(默认取回全部分支)git fetch <远程主机名>
二、获取远程主机指定分支的更新到本地git fetch <远程主机名> <分支名>
所取回的更新,在本地主机上要用"远程主机名/分支名"的形式读取。好比origin主机的master,就要用origin/master读取。
一、查看全部分支
$ git branch -a * master //本地主机的当前分支是master remotes/origin/master //远程分支是origin/master
二、查看远程分支git branch -r
三、手动创建追踪关系git branch --set-upstream <本地分支名> <远程分支名(如origin/next)>
一、建立新分支(在取回的远程分支基础上 fetch+branch)git checkout -b <新分支名> <远程分支名(如origin/master)>
一、合并分支(在当前本地分支上,合并远程分支)git merge <远程分支名(如origin/master)>
一、合并分支(在当前本地分支上,合并远程分支)git merge <远程分支名(如origin/master)>
取回远程分支的更新,并与本地分支合并。fetch+merge
一、取回远程分支,和当前本地分支合并git pull <远程主机名> <远程分支名>
二、取回远程分支,和指定本地分支合并git pull <远程主机名> <远程分支名>:<本地分支名>
三、省略写法1:当前本地分支和远程分支,存在追踪关系git pull origin
四、省略写法2:当前本地分支只有一个追踪分支git pull
五、rebase方式合并git pull --rebase <远程主机名> <远程分支名>:<本地分支名>
若是远程主机删除了某个分支,默认状况下,git pull不会在拉取远程分支的时候,删除对应的本地分支。这是为了防止,因为其余人操做了远程主机,致使git pull不知不觉删除了本地分支。可是参数 -p能够在本地删除远程已经删除的分支
六、删除(已删除的远程分支)对应的本地分支
git pull -p # 等同于下列写法 git fetch --prune origin git fetch -p
该命令将本地分支的更新,推送到远程主机
一、推送本地更新到远程分支(彻底写法)git push <远程主机名> <本地分支名>:<远程主机名>
二、推送本地更新到远程分支(具备追踪关系)
git push origin master //将本地的master分支推送到origin主机的master分支。若是后者不存在,则会被新建。
三、推送本地空分支到远程分支(删除远程分支)
git push <远程主机名> :<远程分支> $ git push origin :master # 等同于 $ git push origin --delete master