git(7)与远程版本库协作
网络协议
git与网络上的远程版本库通信,git提供了3种与远程版本库通信的协议:
SSH
git
HTTP/HTTPS
SSH协议
这个协议安全性高。关于通过SSH协议与版本库协作的方式,我已经在这篇文章做了介绍。
git自带网络协议
这个协议的有时是速度快,但是不够安全。这个我们在前边克隆版本库时用的就是这个
git clone git://github/tswicegood/mysite-chp6.git
HTTP/HTTPS协议
这个协议通信效率低,但是能通过严格的防火墙,易于架设。
如何选择网络通信协议
如果希望速度快,选择git协议
如果安全第一,SSH协议是最好选择
如果不想更改防火墙限制规则,HTTP或者HTTPS协议是唯一选择。
克隆远程版本库
例如
git clone git://github/tswicegood/mysite-chp6.git
cd mysite-chp6
ls
版本库同步
用git branch命令可以查看本地分支列表,加上-r参数,git就显示远程分支
git branch –r
命令git fetch更新远程分支,但它不会把远程分支上的修改合并到本地分支上,使用git pull可以顺序完成两件事:取来,然后合并。
命令git pull需要两个参数,一个是远程版本库名称,另一个是需要拖入的远程分知名(无须在分支前指定版本库前缀origin/)。
关于远程分支名前面的前缀origin/表示远程版本库上的分支名称,用于区别本地分支名称。而origin是默认的远程版本库别名,即克隆是指定的远程版本库。
推入改动
git只会推入已检入的改动,而不会推入工作目录树中的变更和暂存区中的改动:
git push
可以在git push命令后添加参数–dry-run来查看推入哪些提交。
与命令git pull一样,git push命令也可以制动要推入的版本库,语法相同,都是
git push <repository> <refspec>.<repository>可以是任意有效的版本库名称,它可以是网络协议中讨论过的任何url。参数<refspec>可以是任意简单形式,可以是标签也可以是分支,或者像HEAD这样的关键字,用此参数来指定要推入的分支和推入分支到哪些地方。
git push origin mybranch:master将本地分支mybranch上的提交推入远程版本库的主分支上。
添加新的远程版本库
这个我已近在这篇文章做了介绍。