Git部署与使用

欢迎关注 “攻城狮Gala”公/ 众 /号 ,每天一起学习,努力成为Web3全栈

摘要:当你有自己的服务器,同时期望私有化进行版本管理内容 or 代码,部署自己的Git服务器是一个绝佳选择。

背景

之前折腾笔记同步,虽然已经有S3可以在不同设备同步内容,但是对于不同设备同时修改或者出现编辑冲突时,使用S3变成噩梦,无法处理这种情况。

这时候Git作为版本化管理工具,可以完美解决这种问题。同时本着折腾的精神,决定在自己的云服务器部署Git服务,而不是使用Github的免费私有仓库。

选择自建服务还有两点:1.基于github的国内的访问速度;2.对私有数据的隐私保护;

服务端搭建

Git服务器部署

在Git服务器选项方面,采用gogs,gogs是使用Go开发的Git服务器,自带Web UI管理界面,非常赞。

部署的话自然是使用docker,部署方便之极,依赖docker和docker-compose,安装的自行找资料吧,比较简单。

下面是docker-compos.yaml配置,gogs容器需要挂载整个/data目录,来保存生成的数据。

version: '2'services: db:container_name: gogs_dbimage: mysqlvolumes:- "./mysql/data:/var/lib/mysql"- "./mysql/conf.d:/etc/mysql/conf.d"command: mysqld --lower_case_table_names=1 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_cirestart: alwaysenvironment:MYSQL_USER: gogsMYSQL_PASSWORD: 123456MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: gogs gogs:container_name: gogsdepends_on: - dbimage: docker.io/gogs/gogs:latestlinks: - dbports:- "10022:22"- "13000:3000"volumes:- ./gogs/:/datarestart: always

注意mysql 8.0后root用户登录密码采用加密验证了,所以建议新增一个专用的账户来登录mysql,而不是使用root登录。

在docker-compose.yaml的目录,执行如下命令启动服务:

docker-compose up -d

设置域名

强烈建议设置域名使用你的git服务,同时启用https。当前android等系统已经要求访问链接必须是https。

我的服务就设置了对应https访问,命名可以做个参考:

https://git.xxx.com -> localhost:13000https://gitssh.xxx.com -> localhost:10022

Git服务器初始化

启动后访问http://127.0.0.1:13000,启动后页面初始化,注意填写数据库主机时使用docker的container作为ip即可。

应用设置的时候,填写相应的域名。

点击最下面的立即安装,等待片刻。安装成功后可以登录,并创建你的仓库。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1zMhY6Rh-1648655371399)(https://s3.galacoding.fun/images/2022_03_20220327214948.png)]

客户端

如何从Git服务拉取仓库,并同步本地更改呢?下面介绍几个操作系统的客户端。

Win/Mac客户端

对于PC操作系统来说,git安装非常方便。访问git官网就有安装教程。

Android客户端

对于android来说,目前也有一些选择,我使用的是MGit。体验还可以,如果是私有仓库会记住你的账户密码进行拉取。

总结

Git服务搭建好后,可以非常方便应对类似笔记这种,内容变化后各设备同步的场景。以后除了同步笔记外,还可以作为个人私有代码仓库使用。