# cat /tmp/id_rsa.john.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMxXnBOvf9LGt4L
ojG6rs6hPB09j9R/T17/x4lhJA0F3FR1rP6kYBRsWj2aThGw6HXLm9/5zytK6Ztg3RPKK+4k
Yjh6541NYsnEAZuXz0jTTyAUfrtU3Z5E003oxOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9Ez
Sdfd8AcCIicTDWbqLAcU4UpkaX8KyGlLwsNuuGztobF8m72ALC/nLF6JLtPofwFBlgc+myiv
O7TCUSBdLQlgMVOFq1I2uPWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPq
dAv8JggJICUvax2T9va5 gsg-keypair
将这些公钥加入系统用户 git 的 .ssh 目录下 authorized_keys 文件的末尾:
# cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys
# cat /tmp/id_rsa.josie.pub >> ~/.ssh/authorized_keys
# cat /tmp/id_rsa.jessica.pub >> ~/.ssh/authorized_keys
现在我们来为开发者新建一个空仓库。可以借助带 --bare 选项的 git init 命令来做到这一点,该命令在初始化仓库时不会创建工作目录:
# cd /opt/git
# mkdir project.git
# cd project.git
# git init --bare
Initialized empty Git repository in /opt/git/project.git/
接着,John、Josie 或者 Jessica 中的任意一人可以将他们项目的最初版本推送到这个仓库中,他只需将此仓库设置为项目的远程仓库并向其推送分支。
请注意,每添加一个新项目,都需要有人登录服务器取得 shell,并创建一个裸仓库。
我们假定这个设置了 git 用户和 Git 仓库的服务器使用 gitserver 作为主机名。同时,假设该服务器运行在内网,并且你已在 DNS 配置中将 gitserver 指向此服务器。
那么我们可以运行如下命令(假定myproject 是已有项目且其中已包含文件):
## on John‘s computer
# cd myproject
# git init
# git add .
# git commit -m ‘initial commit‘
# git remote add origin git@gitserver:/opt/git/project.git
# git push origin master
此时,其他开发者可以克隆此仓库,并推回各自的改动,步骤很简单:
# git clone git@gitserver:/opt/git/project.git
# cd project
# vim README
# git commit -am ‘fix for the README file‘
# git push origin master
通过这种方法,你可以快速搭建一个具有读写权限、面向多个开发者的 Git 服务器。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/sanxing/article-72418-7.html
晚安
更像是一个小帮派的首领