我有一个git仓库和一个git bundle文件。我可以 checkout 仓库,并在一台机器上应用bundle。我想使用这台特定的机器作为这个仓库的镜像,沿着bundle中的更改。但是当我尝试克隆它时,bundle的更改似乎没有出现。
这是我在机器A上做的:
git clone [email protected]/repo.git
wget https://example.com/extra-upstream.bundle
cd repo
git fetch ../extra-upstream.bundle '+refs/heads/*:refs/remotes/extra/*'
字符串
到目前为止,这似乎工作得很好-我有我预期的变化。
在机器B上,我执行以下操作:
git clone git@machine-A:/repo
型
然而,只有上游代码被克隆,没有bundle中的分支/远程。我错过了什么?
1条答案
按热度按时间0tdrvxhp1#
既然你想提到你想创建一个“镜像”,用
--mirror
克隆,这也会让你得到远程仓库的远程跟踪分支:--mirror
设置源仓库的镜像。这意味着
--bare
。与--bare
相比,--mirror
不仅将源仓库的本地分支Map到目标仓库的本地分支,还Map所有引用(包括远程跟踪分支,注解等)并设置refspec配置,以便所有这些引用都被目标仓库中的git远程更新覆盖。或者,为您的远程指定其他参考规范:
字符串
或者直接获取它们而不进行任何配置:
型
这两种形式都将在获取时在本地镜像远程存储库的“额外”远程名称空间。