51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

一个项目上传到多个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 2 | git push origin master git push github main |

这样就可以完成同步了,但是不需要的时候怎么删除呢?

|-----------------|------------------------------------------------------------------------| | 1 2 3 4 | # 删除GitHub的远程地址 git remote rm github # 查看Git远程地址 git remote -v |

这个方法有一个好处是可以进行不同仓库的拉取,在某一个远程仓库可视化修改后,可以拉取下来再同步到另外一个仓库。

|-----------|----------------------------------------------------------| | 1 | git pull github main --allow-unrelated-histories |

方法二 {#方法二}

这个方法只需要push一次就可以同步到多个地址,但是需要仓库间的分支一样。

在实践当中,由于我的gitea仓库的分支是master,GitHub的分支是main,这个时候也是不能推送成功的,这个时候需要改动其中一个的分支,添加和A、B仓库相同的分支。

如果你尝试使用了方法一,需要删除刚刚添加的远程仓库地址。

|-----------|------------------------------| | 1 | git remote rm github |

给默认的地址添加一个可以推送的地址

|------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 | # 添加一个push地址 git remote set-url --add origin https :// github . com / name / hexo . git # 查看Git仓库远程地址 git remote - v # 应该会出现刚刚添加的地址 origin https :// gitea . com / name / hexo . git ( fetch ) origin https :// gitea . com / name / hexo . git ( push ) origin https :// github . com / name / hexo . git ( 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 |

赞(0)
未经允许不得转载:工具盒子 » 一个项目上传到多个Git仓库方法