国内Git仓库同步到Github仓库
目的
Coding DevOps 通过GitHub做跳板,个人博客自动部署至Netlify App
使用国内Git仓库同步到Github仓库,实现Netlify App自动部署自己的博客网站。
由于GitHub在不开代理的情况下时常无法提交文件,于是就用了Coding DevOps作为博客的仓库,
而我的博客部署在Netlify App,但是Netlify App不支持国内的Git服务商。
准备工作
- Github建立两个仓库 - GitActionScript (专门存放各种Action文件的仓库,如自动备份MongoDB、MySQL数据库等..)
- Blog(目的仓库,从Coding同步文件,Netlity部署用到此处仓库)
 
- Coding建立一个仓库 - HexoBlog(个人博客的源文件)
 
生成SSH Key
| 1 | ssh-keygen -m PEM -t ed25519 -C "wanglu2325@qq.com" | 
一路回车,在用户名\.ssh\ 文件夹下,生成两个文件id_ed25519和id_ed25519.pub
网站添加SSH公钥
Coding.Net
- 登陆Coding.Net,进入首页点击左下角自己的昵称,点击个人账户设置,进入个人设置页面后,点击SSH公钥 
- 复制id_ed25519.pub的内容粘贴到公钥内容 
Github.com
- 登陆GitHub,点击个人头像,然后点击Settings. 
- 进入设置页面,点击SSH and GPG key点击右上角New SSH Key 
- 复制id_ed25519.pub的内容粘贴到Key,然后点击Add SSH key 
回到电脑验证SSH连通性
| 1 | ssh -T git@github.com | 
交互界面输入y
| 1 | ssh -T git@e.coding.net | 
交互界面输入y

此步骤过后,在用户名\.ssh\ 文件夹下,有三个文件id_ed25519和id_ed25519.pub以及KNOWN_HOSTS
同步Git仓库
- 点击仓库的 - Settings–>- secrets and variables–>- Actions–>- New repository secret 
- Name输入- SSH_PRIVATE_KEY,- Secert输入- id_ed25519中的内容 
- 重复步骤2,将回到电脑验证SSH连通性中生成的 - KNOWN_HOSTS添加到- repository secret名字为:- SSH_KNOWN_HOSTS
- 在 - GitActionScript仓库中新建一个- Action.- 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20- name: GIT-MIRROR-CODING 
 on: workflow_dispatch
 # Ensures that only one mirror task will run at a time.
 concurrency:
 group: git-mirror
 jobs:
 git-mirror:
 runs-on: ubuntu-latest
 steps:
 - uses: wearerequired/git-mirror-action@v1
 env:
 SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
 SSH_KNOWN_HOSTS: ${{ secrets.SSH_KNOWN_HOSTS }}
 with:
 source-repo: "git@e.coding.net:your_account/workspace/HexoBlog.git"
 destination-repo: "git@github.com:your_account/Blog.git"
Coding.net设置 WebHook
目的是通知Github执行Action脚本,及时同步代码。
- 进入项目主页,点击 - 项目设置–>- 开发者选项–>- Service Hook–>- 新建Service Hook按照下图填入参数。 
- 参考资料: 
总结
- 代码放在国内Git服务商上(如:coding、gitee、Codeup等)
- 利用Github的Action,将代码仓库同步至Github
- Netlity 绑定Github,将项目部署。
- github与coding的分支名称要保持一致,文中没有强调。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 樂依博客!
 评论