git 传输

git 可以使用四种主要的协议来传输数据:本地传输,SSH 协议,Git 协议和 HTTP 协议。

1本地协议 

            远程仓库在该协议中就是硬盘上的另一个目录。这常见于团队每一个成员都对一个共享的文件系统(例如 NFS )拥有访问权,抑或比较少见的多人共用同一台电脑的时候。后者不是很理想,因为你所有的代码仓库实例都储存在同一台电脑里,增加了灾难性数据损失的可能性。

如果你使用一个共享的文件系统,就可以在一个本地仓库里克隆,推送和获取。要从这样的仓库里克隆或者将其作为远程仓库添加现有工程里,可以用指向该仓库的路径作为URL。比如,克隆一个本地仓库,可以用如下命令完成:

 首先,我们在 我们建立一个作为服务器端的库(虽然是在本地,)





然后我们在别的目录建立一个clone这个小项目,而这个小项目会把/home/git/repos.git 当作远程服务器,

把clone 下来的小项目repos 上push(相当于svn 的提交到服务器) 到/home/git/repos.git 



git clone /home/git/repos.git 

会在当前目录下生成repos目录 repos目录下有个.git 目录,

repos 目录下运行git remote 会默认有一个 origin 的远程端,就是clone 的源端,

而git 的项目是有分支的,默认分支名字是master 

所以要把当前项目推送到远程端需要指定将哪个分支推到哪个远程端,

即git push origin  master  

  (将当项目的master 分支,推送到origin远程端(即/home/git/repos.git),)/
 当然也可以添加其它的远程端

 git repos$


git remote add another_server     /tmp/repos.git   (前提是/tmp/repos.git 存在,)

git repos$

 git remote

another_server

origin

另一个用户再次从/home/git/repos.git clone 时,里面就多了a.java文件



================================================================================

Git 协议

接下来是 Git 协议。这是一个包含在 Git 软件包中的特殊守护进程; 它会监听一个提供类似于 SSH 服务的特定端口(9418),而无需任何授权。用 Git 协议运营仓库,你需要创建 git-export-daemon-ok 文件——它是协议进程提供仓库服务的必要条件——但除此之外该服务没有什么安全措施。要么所有人都能克隆 Git 仓库,要么谁也不能(通常做为只读)。这也意味着该协议通常不能用来进行推送。你可以允许推送操作;然而由于没有授权机制,一旦允许该操作,网络上任何一个知道项目 URL 的人将都有推送权限。不用说,这是十分罕见的情况。

比如在/home/git 目录下有一个repos.git ,把想把repos.git 能过git:// 协议访问

需要运行

Git 协议的设定都相对简单。基本上,只要以长期守护进程的形式运行该命令:

git daemon --reuseaddr --base-path=/home/git   


这还不够, 如果想要repos.git 通过git://协议,需要创建一个空文件(只要文件存在就可以)








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值