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