git分布式的理解----简单服务端搭建
Git是分布式的,并没有服务端跟客户端之分,所谓的服务端安装的其实也是git。Git支持四种协议,file,ssh,git,http。ssh是使用较多的,下面使用ssh搭建一个免密码登录的服务端。
1、提前安装git跟sshserver;
2、 创建一个用户,用来运行git服务;
新建一个用户,叫gituser,然后切换到gituser的默认目录,创建一个叫.ssh的文件夹,并在其中创建一个叫authorized_keys的文件,这个文件将用于存储git开发者的ssh公钥。
  
3、建立一个git仓库;
切换到gituser默认目录,建立一个testgit文件夹,在其中创建一个用于测试的git项目并进行初始化。
  
创建一个aaa.txt,内容随便填写,将该文件纳入git管理
  
4、创建证书
切换到git开发者电脑。设置本地git用户并创建公钥和私钥
  
Windows系统,在用户主目录下有id_rsa.pub跟id_rsa两个文件:
  
这两个就是一对秘钥,id_rsa是私钥,id_rsa.pub是公钥。
5、添加公钥到ssh
将本地生成的id_rsa.pub的内容追加到git服务器gituser用户的~/.ssh/authorized_keys文件中。注意,不是把authorized_keys建成文件夹,把公钥扔进去,是追加文件内容。
特别要注意:.ssh的权限必须是700,authorized_keys文件的权限必须是600,否则公钥无法生效。
6、修改ssh服务端配置
vi /etc/ssh/sshd_config
  
7、从服务端clone项目
在开发者电脑端,执行以下命令:
  
可以看到我们成功把“服务器”上的git项目clone到了本地。
------------------------------------------------------------------------------------------------------------
其实,上面的操作有些繁琐:在“服务端”建一个git项目,然后初始化,然后建一个可以免密码登录的用户,然后用这个账号把git项目拷贝了下来;简单来说,我不免密码登录,也可以git clone那个项目,比如我用root用户:
  
也就是说,只要“服务端”有git项目,有一个可以远程登录的ssh用户,我们就可以直接git clone 那个项目,这个时候,“服务端”跟“客户端”都只要git,没有所谓的gitlab等服务端软件,两者之间只是通过ssh通信就可以实现git的clone,commit等操作,两者地位是平等的。
可见git的确是无中心的分布式的。而github,gitlab之类的“服务端”其实是一个帮助我们管理用户跟git通信方式的工具,在这一点上,gitlab跟visualsvn-server之类的软件有本质的区别。
------------------------------------------------------------------------------------------------------------
git分布式的理解----简单服务端搭建的更多相关文章
- 前端使用node.js+express+mockjs+mysql实现简单服务端,2种方式模拟数据返回
		今天,我教大家来搭建一个简单服务端 参考文章: https://www.jianshu.com/p/cb89d9ac635e https://www.cnblogs.com/jj-notes/p/66 ... 
- Centos 6.5  pptpd服务端搭建过程
		首先检测有没有启用ppp和tun cat /dev/ppp cat /dev/net/tun 如果显示是这样的 cat: /dev/ppp: No such device or address cat ... 
- 前端用node+mysql实现简单服务端
		node express + mysql实现简单服务端前端新人想写服务端不想学PHP等后端语言怎么办,那就用js写后台吧!这也是我这个前端新人的学习成果分享,如有那些地方不对,请给我指出. 1.准备工 ... 
- Apereo CAS Server服务端搭建教程
		不说废话了,直接看搭建过程吧. 首先到下载源码,https://github.com/apereo/cas-overlay-template/tree/4.2 附上地址,本次版本为4.2,下载源码后如 ... 
- react 项目实战(一)创建项目 及 服务端搭建
		1.安装 React社区提供了众多的脚手架,这里我们使用官方推荐的create-react-app. //安装脚手架 npm install -g create-react-app //生成并运行项目 ... 
- FTP服务端  FTP服务端搭建教程
		FTP服务端搭建教程如下:一.需要准备以下工具:1.微型FTP服务端.2.服务器管理工具二.操作步骤:1.下载微型FTP服务端.(站长工具包可下载:http://zzgjb.iis7.com/ )2. ... 
- git 在linux下服务端搭建
		本文以centos为例,其他linux请自行参照对应方式. 1. 服务端安装git yum install git 2. 服务端添加无shell登录权限的用户,将username替换为要添加的用户 u ... 
- 菜鸟之webservice(一)   服务端搭建
		首先说一下,为什么取名叫菜鸟之webservice,由于本人技术真的不咋滴,写博客仅仅是为了对所学知识的总结.webservice对于我来说一直都是高大上的感觉,一个java web和javase都没 ... 
- centos6.5 svn服务端搭建
		一.前言 Subversion是一个免费的开源的版本管理系统,它是作为CVS(Concurrent Versions System)的取代品出现的.本文简单介绍了Subversion在centos上的 ... 
随机推荐
- IOC与依赖注入
			spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入什么?控 ... 
- iOS开发:setNeedsLayOut和setNeedsDisplay区别
			1.layoutSubviews方法 1.1 根据苹果官方帮助文档对layoutSubviews方法的解释: 此方法用来重新定义子元素的位置和大小.当子类重写此方法,用来实现UI元素的更精确布局.如果 ... 
- Linux_Shell_ Map 的使用和遍历
			定义初始化map declare -A map=([") 输出所有key echo ${map[@]} 输出key对应的值 "]} 遍历map for key in ${!map[ ... 
- AngularJS(二)——常见指令以及下拉框实现
			前言 学完AngularJS,总体上感觉没什么新鲜的东西,但是又感觉每一步都很新鲜,因为没有见过,又因为学到的语法函数和JavaScript差不多,本篇主要介绍一些AngularJS的指令,常见指令和 ... 
- Bit(位) and Byte(字节)   ASCll 编码【基础】
			Bit(位) 与Byte(字节)的区别bit意为“位”,是计算机运算的基础,与数据处理速度和传输速度有关.比如:USB2.0标准接口传输速率为480Mbps,其中bps=bits per second ... 
- LAMP实战之构建博客网站
			1.首先检查LAMP环境 [root@cairui htdocs]# ps -ef | grep httpd php Mar03 ? :: /opt/apache2.2.34/bin/httpd -k ... 
- linux脚本遇到的一点问题
			系统环境: # uname -r -.el6.x86_64 # cat /etc/redhat-release CentOS release 6.5 (Final) 对服务器状态监控的一段脚本中使用了 ... 
- SP705 SUBST1 - New Distinct Substrings
			\(\color{#0066ff}{ 题目描述 }\) 给定一个字符串,求该字符串含有的本质不同的子串数量. \(\color{#0066ff}{输入格式}\) T- number of test c ... 
- CF1117G Recursive Queries
			题意:给定一个序列,定义[l, r]的最大值在m处,求f(l, r) = f(l, m - 1) + (r - l + 1) + f(m + 1, r).多次询问.100w. 解:考虑这个区间内每个数 ... 
- Django工程创建
			方法一: 1.win+r进入cmd命令窗口: 2.找到Django的安装地址: 3.cmd窗口中利用cd 进入相应的文件夹,再输入命令如下: django-admin.exe startproject ... 
