【发布时间】:2021-03-21 13:38:02
【问题描述】:
我想将我的一个存储库镜像到一个私有存储库中,以进行一些非公开更改,但仍从公开存储库获取更新。 普通镜像的问题在于,我每次更新 privat 存储库时,我的更改都会被删除。 有没有办法解决这个问题?
我的想法是这样:
回购 A 是公开的,回购 B 是私人的。 我的 privat repo 有分支 main、repoA、我的修复。 现在我想将 repo A 镜像到 repo B 分支 repoA。
但这也破坏了我一直尝试更新的修复分支。
【问题讨论】:
-
“镜像”是什么意思?你的意思是“git克隆”吗?如果你“git clone”一个 repo,你可以对任何分支进行更改,并且当你执行“git pull”从原始 repo 中提取新更改时,你的更改不会丢失。您的更改将与原始存储库中的任何更改合并。
-
好吧,我目前只尝试过这种方式:docs.github.com/en/github/… 但每次获取时都会覆盖所有本地引用,
-
不要使用
--mirror。使用该选项是您遇到麻烦的原因。阅读您在上面引用的那个页面。它解释了--mirror标志的作用。它正是这样做的……当您从原始存储库更新时,它会导致您的更改被炸毁。你只使用--mirror。当您希望副本与原件完全不同时。但是您希望副本有所不同,包含您的额外更改,但能够从原始版本更新。这是一个普通的clone,没有--mirror。您可能想改用--bare。这只是避免了本地工作目录。 -
好的,所以我只需要 git clone --bare github.com/exampleuser/repoA.git 克隆第一个 repo 并将推送位置设置为新 repoB? git remote set-url --push origin github.com/exampleuser/repoB 然后我可以从 repo a 获取并将新的更改推送到 repo b?
-
是的,完全正确。