我在托管设施的私有(private)服务器上运行我自己的私有(private) git 存储库。我将它用于任何我无法开源的私有(private)项目。我将 github 用于我所有的开源工作。
我在桌面 ubuntu 机器和我的 MacBookPro 上进行开发。当我对我的开发系统进行更改时,我将更改推送到 colo 中的源并 pull 到另一个系统。我非常擅长让所有三个系统在大多数情况下保持最新状态,主要用于备份和灾难恢复目的。
既然 BitBucket 提供免费的私有(private) git 托管,我正在考虑在那里添加我的项目的克隆。此外,我可以使用 BitBucket 提供的额外功能,而我的准系统私有(private) git 服务器不提供这些功能。但是,我想继续在我的托管服务器上保留一份私有(private)存储库的副本,以实现备份冗余。
所以我有几个问题:
在不更改我的标准开发流程(编辑、添加、提交、推送)的情况下,我如何才能将推送到我的服务器的提交自动同步到 bitbucket 项目?每当我推送到我的 git 服务器时,我都希望这些提交自动推送到我的 bitbucket 项目。我不想更改我的工作流程,并希望对我的开发客户进行尽可能少的必要更改。
如果我想使用 bitbucket 作为我的主要 git 存储库,我该如何将我的项目从我的私有(private) git 服务器迁移到 bitbucket?
迁移到 bitbucket 后,我仍然希望在我的服务器上有另一个备份。我怎样才能自动将对 bitbucket 的提交推送到我的 git 服务器?这基本上是问题 1 的反面。
最佳答案
对于 #1,最简单的解决方案是在您的远程仓库上使用一个钩子(Hook),该钩子(Hook)会自动推送到 BitBucket。
对于 #2:您只需将 bitbucket 添加为远程并推送到它而不是源。如果您有任何跟踪分支(检查 .git/config
),请将 remote = origin
更改为您用于 bitbucket 的任何名称。另一种解决方案是删除/重命名您现有的 origin
远程并将 bitbucket 添加为 origin。
对于 #3:执行 git fetch
的 cronjob 可能是执行此操作的最简单方法。
关于git - 如何保持两个 git repos 同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7658997/