自建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
2
3
cd /srv/
sudo git init --bare /srv/xxxx.git
sudo chown -R git:git /srv/xxxx.git

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
2
3
GIT_REPOSITORY=$1
sudo git init --bare $GIT_REPOSITORY.git
sudo chown -R git:git $GIT_REPOSITORY.git

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
2
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.

如果需要添加一个固定的远程仓库,需要使用到 url ,即需要开启了 443 端口的服务器。

其他服务器管理

证书颁发

如下所示,下面的子域名已经签审了 SSL 证书了,可以正常使用 443 端口不被拒绝。

image-20220223015715136

防火墙设置

确保腾讯云服务器管理页面下的防火墙设置中已开启 443 端口。

image-20220223015852398

使用 ubuntu 和 centos 系统的可以参考 《CentOS7安装iptables防火墙》 开启 443 端口,直接运行下面命令即可:

1
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

克隆远程仓库

如果本地已有仓库,可能会与远程服务器的 master 分支冲突,需要自行使用 git fetch 管理,然后使用 git push --set-upstream master 进行上传。

image-20220223014741138