gpt4 book ai didi

git - 如何将一个仓库用作父仓库?

转载 作者:太空狗 更新时间:2023-10-29 13:40:15 27 4
gpt4 key购买 nike

不确定标题是否措辞正确,但是

我有 repo-Arepo-B

在 B 中,我已将 A 和 B 设置为 Remote 。
假设 B 是 A 的扩展,带有一些附加文件,我想使用 A 的更改定期更新 B,但不将附加的 B 文件推送到 A

这可能吗?最好的方法是什么

最佳答案

除非有单独的 repo 的特定要求,否则您所描述的最好作为一个分支来完成。 B 是 A 的一个分支。使用 git merge A 将 B 更新为任何其他分支或 git rebase A ,随便你。从现在开始,我将假设 merge 。这是 merge 后的样子。

 1 - 2 - 3 - 6 - 7 - 10 - 12 - 13 [A]
\ \ \
4 - 5 - M - 8 - 9 - 11 - M - 14 [B]

如果它们必须是单独的存储库,您可以做同样的事情,但使用远程分支。当您扩展您无法直接控制的项目时,您可能会使用它。为了让事情更清楚一点,我们称 A 为“上游”,B 是您的存储库。 A 在 B 的上游。B 只从上游 pull ,从不推回。

通过首先克隆 A 进行设置,然后重命名 origin (这是 A)到 upstream .

  • git clone A
  • git remote rename origin upstream

然后添加一个新源,您希望在其中远程存储您的修改并推送到它。

  • git remote add origin <url to your remote>
  • git push origin

现在你有了这个。请注意,所有三个分支都指向同一个提交。

1 - 2 - 3 [master] [origin/master] [upstream/master]

正常工作,正常提交,然后推送到源。这是在两次新提交和一次推送之后。

1 - 2 - 3 [upstream/master]
\
4 - 5 [master] [origin/master]

想更新的时候,先git fetch upstream .这不会改变您的本地分支机构,它只会更新您的上游分支机构的副本。假设上游的主分支有两个新提交。

1 - 2 - 3 - 6 - 7 [upstream/master]
\
4 - 5 [master] [origin/master]

然后像任何其他分支一样 merge :git merge upstream/master .

1 - 2 - 3 - 6 - 7 [upstream/master]
\ \
4 - 5 - M [master] [origin/master]

您可以一步完成此操作,如 git pull upstream master .

继续这样做,您将得到与分支相同的结果。

 1 - 2 - 3 - 6 - 7 - 10 - 12 - 13 [upstream/master]
\ \ \
4 - 5 - M - 8 - 9 - 11 - M - 14 [master] [origin/master]

重要的是:

  • 远程分支只是分支。
  • 从上游 pull :git pull upstream
  • 推送到来源:git push origin

关于git - 如何将一个仓库用作父仓库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37104607/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com