一个项目上传到多个Git仓库方法
最近在部署静态博客的时候,想做冗余方案。即是将一个工作目录下文件Push到多个Git仓库去进行存储。
我的仓库地址为Gitea和Github,Gitea为自建的方案,怕那一天不小心手贱重装机器就没法恢复了,还是使用冗余方案比较好一点。
在互联网一顿寻找,终于找到了方案,以下做个记录!
方案一
这个方案不是很推荐,需要push推送两次
在Git 我已经配置了Gitea为默认的仓库,再添加一次git的仓库
1 | git remote add github https://github.com/name/hexo.git |
推送到远程仓库
1 | git push -u github main |
这样项目就同步到了GitHub仓库上面了
这个时候,就可以实现一个项目提交到多个Git地址了,但是麻烦事情也来了,在提交内容的时候需要进行多次Push提交,才能完成同步。
1 | git push origin master |
这样就可以完成同步了,但是不需要的时候怎么删除呢?
1 | # 删除GitHub的远程地址 |
这个方法有一个好处是可以进行不同仓库的拉取,在某一个远程仓库可视化修改后,可以拉取下来再同步到另外一个仓库。
1 | git pull github main --allow-unrelated-histories |
方法二
这个方法只需要push一次就可以同步到多个地址,但是需要仓库间的分支一样。
在实践当中,由于我的gitea仓库的分支是master,GitHub的分支是main,这个时候也是不能推送成功的,这个时候需要改动其中一个的分支,添加和A、B仓库相同的分支。
如果你尝试使用了方法一,需要删除刚刚添加的远程仓库地址。
1 | git remote rm github |
给默认的地址添加一个可以推送的地址
1 | # 添加一个push地址 |
这样我们就完成了基本操作,尝试一下Push吧!
1 | git push origin master -f |
这样就可以在A、B仓库当中,查看到刚刚推送的内容。如果是进行Pull操作的时候,会从orgin的默认地址进行拉取,不会在添加的分支上进行拉取。
如果我们想要删除的方法是
1 | git remote set-url -delete origin https://github.com/name/hexo.git |
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自钧言极客
评论 ()