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。 ...

9.6 Git 内部原理 - 传输协议

传输协议 Git 可以以两种主要的方式跨越两个仓库传输数据:基于HTTP协议之上,和 file://, ssh://, 和git:// 等智能传输协议。这一节带你快速浏览这两种主要的协议...

10.6 Git 内部原理 - 传输协议

传输协议 Git 可以通过两种主要的方式在版本库之间传输数据:“哑(dumb)”协议和“智能(smart)”协议。 本节将会带你快速浏览这两种协议的运作方式。 哑协议 如果你正在架设一个基于...

Git配置credential helper,并使用Http/Https传输

Git配置credenti helper,实现不需要反复输入用户名密码http/https同步

利用Git和TortoiseGit把代码传输到网络服务器

版本控制这块,一直用SVN。感觉挺好用,比VSS要好用些。不过,近期在网上,又谈到时下很流行的Git。就想看看Git到底是何方神圣。趁着五一在家无事,就静下心来,简单研究一下。   当下,网络上提供的...

Git使用基本方法二(通过SSH加密传输连接git服务器)

之前介绍的连接git服务器的方法(链接),存在一个不是很方便的问题,即每次上传等操作时都需要用户名和密码。 git服务器还支持通过SSH加密的传输,通过这种方法,可以省去每次都输入密码的麻烦。不过在此...
  • lqc1992
  • lqc1992
  • 2015年04月13日 15:45
  • 1454

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

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

Git学习:利用Git和TortoiseGit把代码传输到网络服务器

版本控制这块,一直用SVN。感觉挺好用,比VSS要好用些。不过,近期在网上,又谈到时下很流行的Git。就想看看Git到底是何方神圣。趁着五一在家无事,就静下心来,简单研究一下。   当下,网络上提供...

Git学习:利用Git和TortoiseGit把代码传输到网络服务器

点击打开链接 版本控制这块,一直用SVN。感觉挺好用,比VSS要好用些。不过,近期在网上,又谈到时下很流行的Git。就想看看Git到底是何方神圣。趁着五一在家无事,就静下心来,简单研...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:git 传输
举报原因:
原因补充:

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