搭建git 服务器
参考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