代码之家  ›  专栏  ›  技术社区  ›  Å imon Tóth

如何更新我的裸回购?

git
  •  105
  • Å imon Tóth  · 技术社区  · 14 年前

    我创建了一个BareRepo来发布我的存储库,但是我不知道如何用主存储库的当前状态更新BareRepo。

    6 回复  |  直到 7 年前
        1
  •  63
  •   Thomas    12 年前

    如果要从主回购中复制所有对象,请在主回购中执行此操作:

    git push --all <url-of-bare-repo>
    

    或者,在裸回购中执行一个提取操作:

    git fetch <url-of-main-repo>
    

    不能拉,因为拉要与 HEAD 这是裸回购所没有的。

    您可以将这些作为遥控器添加,以便将来保存一些键入内容:

    git remote add <whatever-name> <url-of-other-repo>
    

    那你就可以简单地

    git push --all <whatever-name>
    

    git fetch <whatever-name>
    

    取决于你的回购协议。如果 <whatever-name> origin 你甚至可以把它完全忽略掉。

    免责声明:我不是Git大师。如果我说错了,我想得到启发!

    更新:阅读评论!

        2
  •  59
  •   Community SushiHangover    7 年前

    我使用以下命令创建了一个存储库

    git clone --bare <remote_repo>

    然后我试图用托马斯的答案更新裸机,但对我来说不起作用。为了更新裸露的存储库(我想让你自己去问),我必须创建一个镜像存储库:

    git clone --mirror <remote_repo>
    

    然后,我可以在镜像存储库中运行以下命令来获取主存储库的更新:

    git fetch --all
    

    我通过阅读发现了这个解决方案 Mirror a Git Repository By Pulling

        3
  •  43
  •   Community SushiHangover    7 年前

    唯一的解决方案除了用 git clone --mirror from Gregor :

    git config remote.origin.fetch 'refs/heads/*:refs/heads/*'
    

    然后你可以 git fetch 你会看到更新。奇怪的是,在这之前,尽管 remote 已配置,它没有在中列出的分支 git branch -a .

        4
  •  31
  •   antak Jason    10 年前

    假设:

    $ git clone --bare https://github.com/.../foo.git
    

    拿来:

    $ git --git-dir=foo.git fetch origin +refs/heads/*:refs/heads/* --prune
    

    注: --git-dir=foo.git 如果您 cd 先到目录。

        5
  •  8
  •   peterh Eli    7 年前

    在经历了很多麻烦之后,我发现这对我很有用。

    一次:

    git clone --mirror ssh://git@source.address:2000/repo
    git remote add remote_site ssh://git@remote_site.address/repo
    git config remote.origin.fetch 'refs/heads/*:refs/heads/*'
    

    每次我想同步时:

    cd /home/myhome/repo.git
    git --bare fetch ssh://git@source.address:2000/repo
    git  fetch ssh://git@source.address:2000/repo
    git push --mirror remote_site
    
        6
  •  3
  •   Philipp    14 年前

    将裸存储库添加为远程存储库,然后使用 git push .