美文网首页
搭建git 服务器

搭建git 服务器

作者: 花生Linkin | 来源:发表于2020-08-21 15:49 被阅读0次

    参考https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664

    故事背景:

    想在实验室用Jenkins搭一个CI 环境做测试,安装好Jenkins后 发现测试机没有权限访问git 服务器。

    怎么办?

    答案是:直接在测试机上面搭一个git 服务器

    如何在Linux机器上面搭个git服务器。

    最简单就是用git 自带的功能。因为git 本来就是一个分布式的系统。复杂的可以用什么gitlab, gerrite...

    第一步,安装git:

    $ sudo apt-get install git

    第二步,创建一个git用户,用来运行git服务:

    $ sudo adduser git

    第三步,创建证书登录:

    把用户的公钥 id_rsa.pub 导入到/home/git/.ssh/authorized_keys文件里,一行一个。

    cat id_rsa.pub >> authorized_keys

    第四步,初始化Git仓库:

    先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:

    $ sudo git init --bare sample.git

    然后,把owner改为git:

    $ sudo chown -R git:git sample.git

    第五步,禁用shell登录:

    出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

    git:x:1001:1001:,,,:/home/git:/bin/bash

    改为:

    git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

    这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

    第六步,克隆远程仓库:

    现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:

    $ git clone git@server:/srv/sample.

    Cloning into 'sample'...

    warning: You appear to have cloned an empty repository.

    如何把现有的仓库push 的新的服务器

    1. 添加新的remote:

    git remote add origin-new git@server:/srv/sample.git

    2. push

    git push -u origin-new --all

    3.push 过之后,你的分支会默认跟踪新的remote,如果想切换到原来的remote,可以这样:

    格式: git branch --set-upstream-to=origin/remote_branch your_branch

    比如:git branch --set-upstream-to=origin/master master

    更多git remote操作参考:https://www.cnblogs.com/bwar/p/9297343.html

    官方文档:https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches

    相关文章

      网友评论

          本文标题:搭建git 服务器

          本文链接:https://www.haomeiwen.com/subject/aegujktx.html