git 传输

原创 2012年03月28日 22:53:17

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://协议,需要创建一个空文件(只要文件存在就可以)


版权声明:本文为博主原创文章,未经博主允许不得转载。

git工具的使用——数据传输协议

Git 可以使用四种主要的协议来传输数据:本地传输,SSH 协议,Git 协议和 HTTP 协议。 值得注意的是,除了 HTTP 协议外,其他所有协议都要求在服务器端安装并运行 Git。 ...
  • chuntiandejiaobu10
  • chuntiandejiaobu10
  • 2016年08月02日 16:47
  • 673

git checkout -f实例|Git打包压缩方法

像android一样的源码,一个源码就有10G,如果要想发送或者刻录,这么大的代码很难传输。因此,可以这样做: 1.把工作目录下的.git复制一份。 2.压缩这个.git文件夹。linux中可以tar...
  • xzongyuan
  • xzongyuan
  • 2013年09月11日 17:46
  • 5863

Git版本控制:Git远程仓库

Git远程仓库 可以找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。 G...
  • pipisorry
  • pipisorry
  • 2015年03月27日 09:49
  • 4144

git的传输协议及各自优缺点(本地传输协议,ssh,http,git)

协议 Git 可以使用四种主要的协议来传输数据:本地传输,SSH 协议,Git 协议和 HTTP 协议。下面分别介绍一下哪些情形应该使用(或避免使用)这些协议。 值得注意的是,除了 HTTP 协议...
  • return_cc
  • return_cc
  • 2017年11月01日 22:21
  • 104

如何使用 Git 管理二进制大对象

通过这系列的前六篇文章,我们已经学会使用 Git 来对文本文件进行版本控制的管理。我们不禁要问,还有二进制文件呢,也可进行进行版本控制吗?答案是肯定的,Git 已经有了可以处理像多媒体文件这样的二进制...
  • linuxnews
  • linuxnews
  • 2016年12月13日 21:41
  • 1120

git clone使用git协议传输的问题

环境:windows 8中文版. git下载node-webkit的grunt-init的项目模板. 执行命令: git clone  git@github.com:youxia...
  • wherwh
  • wherwh
  • 2015年01月16日 16:43
  • 3917

Unix下去掉^M的方法

在vi中:按Esc切换到命令模式;:%s/^M//g即可。其中:^M是通过 Ctrl+v+Shift+m输入的,即按住ctrl键按v键,不放ctrl键,再按shift键和m键,完成后全部放开。在l...
  • Augusdi
  • Augusdi
  • 2015年06月08日 11:30
  • 4599

jenkins+maven+git配置以及远程发布war包详细过程

1 jenkins安装 官网下载war包,直接放到tomcat目录 官网http://jenkins-ci.org/ 2 git-plugin插件配置 安装好后直接访问“ht...
  • xiaoyao8903
  • xiaoyao8903
  • 2016年11月20日 21:32
  • 1605

通过SSH向GitHub push代码

在GitHub创建了repository之后,可以通过HTTPS或者SSH向其中push代码,本文以linux-2.6.39.4-notes项目为例进行说明: 参考资料 [1]...
  • Q1302182594
  • Q1302182594
  • 2016年10月28日 11:17
  • 1659

突破github的100M单个大文件上传限制

偶尔把几本电子书传到github上,其中一本关于c++的有147M(在本地磁盘占用了150M空间),使用普通的方式,最终会被github 服务器拒绝。在github 官网上也有了相关说明,具体请查看:...
  • Tyro_java
  • Tyro_java
  • 2016年12月03日 00:22
  • 9173
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:git 传输
举报原因:
原因补充:

(最多只允许输入30个字)