如何将git repo同步到镜像仓库

时间:2018-01-02 02:55:24

标签: git synchronization mirror

我想把一个git repo镜像到我当地的仓库,并希望 及时同步他们,我这样做了:

git clone --mirror source_url source_repo
cd source_repo
git push --mirror local_url

现在我已经将源代码镜像到我的本地仓库,我可以克隆我的 像这样的当地回购:

git clone local_url local_repo

但是由于源代码库正在更新,我怎么能让它们保持同步?

4 个答案:

答案 0 :(得分:1)

这里有几种方法。您可以选择一个方便的人。

  1. https://softwareengineering.stackexchange.com/questions/195456/keeping-git-repositories-on-different-hosts-in-sync中讨论的方法(编写脚本等)
  2. 为您的git仓库添加自定义挂钩 - https://www.digitalocean.com/community/tutorials/how-to-use-git-hooks-to-automate-development-and-deployment-tasks
  3. 如果你使用像BitBucket这样的第三方工具,他们应该为此内置解决方案或插件。例如:https://marketplace.atlassian.com/plugins/com.englishtown.stash-hook-mirror/server/overview

答案 1 :(得分:0)

任何镜像或工作的本地存储库都可以与git remote update

同步
cd REPO
git remote update

答案 2 :(得分:0)

正是出于这个目的,我创建了git-sync-mirror

  

git-sync-mirror

     

用于HTTPS上git存储库的简单同步容器映像

     

功能:

     
      
  • 使用https令牌进行身份验证
  •   
  • 如果需要,对源和目标使用不同的HTTPS代理
  •   
  • 首次使用TLS信任:在https扫描代理后面无缝运行此容器
  •   
  • 跳过证书检查(不要这样做)
  •   
  • 配置两次同步尝试之间的睡眠时间
  •   
     

用法

     
$ docker run \
   --rm \
   --env SRC_REPO=source \
   --env DST_REPO=destination \
   --env SLEEP_TIME=30s \
   enteee/git-sync-mirror
     

注意:该容器旨在通过https与   使用访问令牌支持的身份验证。例如替换   源与   https://github-user:github-access-token@github.com/Enteee/git-sync-mirror.git

答案 3 :(得分:0)

在我的情况下,我想在从本地存储库推送到远程A存储库后将中央远程A存储库同步到另一个部署远程存储库B。为了避免为每个本地存储库总添加两个存储库,我已经在远程A存储库上创建了更新后的钩子,其中包含一行代码git push --all --force。现在,部署远程存储库B始终自动与中心远程A存储库保持最新。