搭建 git 服务器(中心仓库)
gitlab
建议使用 gitlab 搭建,只需要一个命令就可以了
docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
source: https://docs.gitlab.com/omnibus/docker/README.html
手工搭建 git 服务器
假设服务器的名字是 git.example.com.
首先,添加一个叫做git的用户adduser git
。
然后如果不存在的话, 为这个用户新建一个主目录mkdir /home/git
,然后把这个目录设为git所有chown git ~git
再在本地把你的ssh公钥拷贝到服务器上 ssh-copy-id git@git.example.com
服务器就这样搞好了
使用
- 在服务器上新建仓库
首先,在服务器新建一个项目, 其中 new_project 是你的项目的名字.
ssh git@git.example.com "mkdir <new_project>.git && cd <new_project>.git && git init -bare"
当然这么一长串实在是太烦了, 我们可以把它写成一行脚本new_repo.sh
1 2 3 | #!/bin/bash
ssh git@git.example "mkdir $1\.git && cd $1\.git && git init --bare"
echo "New git repo git@git.example.com:$1.git"
|
然后 chmod +x new_repo.sh 以后就可以这样调用了 ./new_repo.sh foobar 就可以了
- 和本地建立连接
如果是新项目
然后 clone 到本地就好了:
git clone git@git.example.com:new_project.git
如果是老项目
如果你已经在本地有了项目, 并且初始化了 git 仓库, 不是采用clone,而是直接设置上游服务器,那就推送到服务器上
git remote add origin git@git.example.com:new_project.git
git push -u origin master