(七)服务器上的 Git

协议

本地协议:网络协议的本地化。操作无变化,路径方式不同
HTTP 协议:包括智能(Smart) HTTP 协议哑(Dumb) HTTP 协议
ssh协议:简单、安全、高效,一般结合http协议搭建git服务
git协议:传输效率最高。传输机制同ssh,但是少了加密和授权。

服务器上搭建git

1. 服务器上创建裸仓库

如果一个用户,通过使用 SSH 连接到一个服务器,并且其对 /opt/git/my_project.git 目录拥有可写权限,那么他将自动拥有推送权限。

如果到该项目目录中运行 git init 命令,并加上 --shared 选项,那么 Git 会自动修改该仓库目录的组权限为可写。

$ ssh user@git.example.com
$ cd /opt/git/my_project.git
$ git init --bare --shared

注意: git的服务端仓库初始化可以是一个裸仓库,然后通过本地推送,同步给服务端,如此初始化服务端仓库时一定要加上–bare选项,否则后面的操作会有警告

2. 本地git下载(ssh协议)服务端仓库

$ git clone user@git.example.com:/opt/git/my_project.git

3. ssh协议免账号密码输入配置

如果需要团队里的每个人都对仓库有写权限,又不能给每个人在服务器上建立账户,那么提供 SSH 连接就是唯一的选择了。 假设用来共享仓库的服务器已经安装了 SSH 服务,而且通过它访问服务器。

方法一:
在主机上建立一个 git 账户,让每个需要写权限的人发送一个 SSH 公钥,然后将其加入 git 账户的 ~/.ssh/authorized_keys 文件。这样一来,所有人都将通过 git 账户访问主机。 这一点也不会影响提交的数据——访问主机用的身份不会影响提交对象的提交者信息。

方法二:
SSH 服务器通过某个 LDAP 服务,或者其他已经设定好的集中授权机制,来进行授权。 只要每个用户可以获得主机的 shell 访问权限,任何 SSH 授权机制你都可视为是有效的。

以下仅介绍方法一配置方式:
a、本地电脑生成公钥

#git config --global user.name “用户名”
#git config --global user.email “邮箱”
#ssh-keygen -t rsa 
// 查看公钥内容
#cat ~/.ssh/id_rsa.pub  

并按回车3下
b、公钥内容加到git服务器中的~/.ssh/authorized_keys中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值