自建git远程仓库
基本上也就只参考了廖雪峰这篇 《 搭建Git服务器 》 的文章。
部署git服务器
确保已安装git
for debian linux:
1 | sudo apt install git |
and check the version of it:
1 | git --version |
创建git账户
Add a account name git
in linux :
1 | sudo adduser git |
设置使用者的SSH配置
Copy the SSH keys of your client computers to save to the file in
/home/git/.ssh/authorized_keys
.
禁用shell登录
For the safety of your server, you should ban the shell login for
git
account.
1 | sudo vim /etc/passwd |
Find something like
git:x:1001:1001:,,,:/home/git:/bin/bash
, and modify it
to:
1 | git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell |
git
用户可以正常通过ssh使用git,但无法登录shell,因为已经为git
用户指定的git-shell
每次一登录就自动退出。
新建仓库
- Build a directory named
srv
to store the repositories. (Of course you can name it the way you like.) - Initializa a new bare repository name
xxx
. - Change its owner as the user
git
which is just created before.
1 | cd /srv/ |
And you can copy the script below TO CREATE YOUR NEW REPOSITY.
Remember to save it as .sh
file and use
chmod +x
command to make it executable.
By default, this script is stored as
gitInit.sh
in the diretory/srv
.If you change the script execute diretory, remember to modify the script below.
1 | GIT_REPOSITORY=$1 |
USAGE:
1 | ./gitInit.sh <newRepository> |
使用仓库
到这一步为止,已经可以使用
git pull git@<yourServer>:/srv/xxx.git
进行仓库拉取了。
1 | $ git clone git@<yourServer>:/srv/sample.git |
And you will see:
1 | Cloning into 'sample'... |
如果需要添加一个固定的远程仓库,需要使用到 url
,即需要开启了 443
端口的服务器。
其他服务器管理
证书颁发
如下所示,下面的子域名已经签审了 SSL 证书了,可以正常使用
443
端口不被拒绝。
防火墙设置
确保腾讯云服务器管理页面下的防火墙设置中已开启 443
端口。
使用 ubuntu 和 centos 系统的可以参考 《CentOS7安装iptables防火墙》
开启 443
端口,直接运行下面命令即可:
1 | sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT |
克隆远程仓库
如果本地已有仓库,可能会与远程服务器的 master
分支冲突,需要自行使用 git fetch
管理,然后使用
git push --set-upstream master
进行上传。