创建git服务器 并 搭配svn

创建git服务器

1、安装git
    yum install -y git
    
2、创建git用户
    adduser git
    
3、初始化Git仓库
    git init --bare sample.git    
    
    说明:
    1)sample.git为项目仓库目录,按习惯将代码仓库目录以.git后缀命名,
    2)git克隆目录即为:git@servername:/srv/sample.git,“@”前面的git为第2步添加的git帐户名,servername服务器域名或ip,“:”后面为git仓库在服务器上的路径
        
    
    chown -R git:git sample.git
    
    用root用户操作时需注意,将此仓库路径上的目录和文件所有者全部设为git


4、需要登录的用户生成ssh密钥和公钥
    执行:ssh-keygen
    生成文件:id_rsa 、id_rsa.pub
    

ssh-keygen -t rsa  -C 'comment' -f 'ra.txt'
-t 加密方式
-C 注释
-f 保存路径


    ssh说明:    
  id_rsa : 生成的私钥文件
  id_rsa.pub : 生成的公钥文件
  know_hosts : 已知的主机公钥清单
    authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥

  ssh公钥生效需满足下面条件:
      1) .ssh目录的权限必须是700 
    2) .ssh/authorized_keys文件权限必须是600
    3) .ssh/id_rsa文件权限必须是600
    

这里生成的密钥和公钥是给要连接的客户端用的,也可在其他地方生成,不是git服务品需要,git服务器只需要知道公钥
    .ssh目录所有者为要免密登录的用户,注意用户权限
    
5、收集名密登录用户公钥
    收集所有需要登录的用户的公钥(id_rsa.pub),在服务器git用户家目录下,把所有公钥导入到/home/git/.ssh/authorized_keys文件里(若不存在则手动添加),一行一个公钥字符串。
        

注意:这里创建的仓库目录,还有收集公钥的文件都是git用户用到的,一定要将其所有者修改为git用户

有时候会遇到创建了密钥却还提示要输入密码,就是这个原因

    
6、禁用shell登录
    创建的git用户不允许登录shell,通过编辑/etc/passwd文件完成
    git:x:1001:1001:,,,:/home/git:/bin/bash
        改为:
    git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

可通过使命修改:

$ cat /etc/shells # 检查 `git-shell`是否存在于此文件,如果没有继续以下两步操作

$ which git-shell # 确保 git-shell已经安装,一般安装git都会有
$ sudo vim /etc/shells # 将git-shell所在的路径追加在这个文件中


chsh git

输入git-shell路径: /usr/bin/git-shell (这个是安装git后自带的,可通过which git-shell获得)

要使用 git-shell要用它bash csh,使其系统用户的shell

为进作,必须确git-shell 在于 /etc/shells 文件中。

/etc/shells是一个有效登陆shell的列表,在调用chsh改变登陆shell时,会查询这个文件。
    
7、 克隆项目到本地
    git clone git@server:/srv/sample.git .
    "."表示当前目录
    

8、客户端使用
    1)前面1-6步创建git服务器
    2)在用户目录记录.ssh目录:C:\Users\jingyu\.ssh
    3)将生成的公钥、私钥复制到.ssh目录下
    4)sourcetree设置:
        进入 “工具》选项》一般 ”:
            ssh客户端配置/ssh密钥 选中id_rsa
            ssh客户端选择OpenSSH
    5)克隆项目


    6)与svn结合:
        公司项目服务器用svn做仓库,git为开发者本地使用:
            a)checkout svn项目,创建为svn分支
            b)svn分支只用来同步svn代码,同步一次提交一次svn分支节点
            c)开发时另建开发分支dev
            d)需要提交svn时,才将开发分支dev合并到svn分支,
            e)提交svn到远程代码仓库,同时提交git的svn分支保存此节点
            

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值