将阿里云作为git服务器
前言
本来一开始在研究,如何部署在github
上的博客自动发布到aliyun
上,这样就不用每次更新需要在aliyun
服务器上进行一次pull
操作
看了些使用git hook
操作的文章,没有看到,很多都是一些步骤,也不说明原因,出了问题也不知道怎么解决。想到另外的方法是直接弄一个定时任务,这样也可以进行更新,不过感觉git hook
的实现机制比较好。
不过忽然看到可以仓库直接放在aliyun
上,aliyun
提供了这样的功能,这也算是第一步吧。
流程
- 在aliyun code上添加本地电脑的公钥,建立安全的加密连接
- 在aliyun code上添加项目
- 和常规仓库一样的操作
一、在aliyun code上添加本地电脑的公钥,建立安全的加密连接
查看本机电脑是否有公钥
公钥文件一般是~/.ssh/id_rsa.pub
文件,同时对应一个~/.ssh/id_rsa
的私钥文件生成公钥文件
使用命令ssh-keygen -t rsa -C "[email protected]"
,其实使用ssh-keygen
命令即可,-t
参数指定算法,-C
只是一个描述而已,官方建议是使用阿里云邮箱添加本地电脑的公钥,建立安全的加密连接
登陆网站aliyun code,选择设置->SSH公钥->+增加SSH密钥->粘贴公钥的内容->增加密钥
三、在aliyun code上添加项目
登陆aliyun code,选择项目->新建项目->项目设置
,因为我的项目已经放在了gitee
,所以选择了其他仓库的链接
,这样直接就将项目导入了aliyun code
,也可以新建一个项目(仓库),pull
下来之后,将项目代码复制到该文件夹中。最后点击创建项目
四、修改git
同时提交到多个仓库
原理就是增加远程仓库链接
- 打开项目中的
./git/config
文件,其中的内容如下(我的项目):
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = https://gitee.com/mycroftwong/LoveServer.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
可以看到它实际上就是绑定了一个远程仓库地址
- 增加远程仓库地址
增加后的内容如下:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = https://gitee.com/mycroftwong/LoveServer.git
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://code.aliyun.com/mycroftwong/LoveServer.git
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "aliyun"]
url = https://code.aliyun.com/mycroftwong/LoveServer.git
fetch = +refs/heads/*:refs/remotes/gitee/*
tagopt = --no-tags
- 修改文件,进行
push
如我修改了README.md
文件
# 添加文件
git add README.md
# 提交文件
git commit -m "修改README.md"
# 切换到本地master
git checkout master
# 将本地dev merge到master
git merge dev
# 将本地master push 到remote dev
git push origin master:dev
# 结果如下
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 322 bytes | 322.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Checking connectivity: 3, done.
remote: Powered By Gitee.com
To https://gitee.com/mycroftwong/LoveServer.git
a8fe678..03d1b99 master -> dev
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 322 bytes | 322.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
To https://code.aliyun.com/mycroftwong/LoveServer.git
a8fe678..03d1b99 master -> dev
这样就自动提交到了多个仓库