如何将 github 项目分叉到 github 外的 git repo?

马科斯·马林

在我尝试开始这个项目之前,我从未使用过 git,所以请耐心等待。

基本上,我的团队正在我们自己的 git 存储库中启动一个新项目,该项目将具有其他 github 项目作为依赖项。我们希望我们必须对那些我们想要推送回我们自己的仓库的依赖项进行编辑,以便团队中的每个人都可以同步它们。我们还希望对原始 GitHub 存储库中的依赖项进行更新,因为我们希望最终将存储库中的更改推回 GitHub。到目前为止,这有意义吗?

好的,所以我想布置我们的项目的方式如下:

root
|- src                    <- Our code goes here
|- upstream               <- GitHub dependencies go under here
   |- GitHub project A
   |- GitHub project B

所以我认为这样做的方法是对于每个 GitHub 依赖项,git clone将 GitHub 存储库放到所需目录,git remote set-url origin <our repo url>然后git remote add upstream <original github url>. 我想那时我将能够进行更改、添加、提交并最终推送到我们的存储库。并且在需要时,从上游远程拉取数据以保持最新状态。

不幸的是这并没有完全奏效,之后我做git add .root,做git status -s在GitHub上的目录将不显示文件作为补充。执行提交和推送使事情看起来像是半烘焙状态,然后我开始感到压力,因为我不知道自己在做什么。

因此,如果有人可以分享一些帮助,我将不胜感激,但请像我五岁一样跟我说话。

华丽丽的

您的策略会起作用,但前提是您确实拥有上游写入权限,而显然您没有。由于只需要分叉依赖项,并且如果将存储库保存在 Github 而不是外部系统是一种选择,那么我建议这样做。这是假设您提到的根文件夹本身不是 git 存储库。如果是,请继续阅读,否则跳到下一段。

在这种情况下,您可以在 Github 中将上游设置为您的分叉存储库,然后从那里打开一个 PR 到原始存储库,同时将您自己的(私有?)存储库作为origin远程存储库。您还必须在存储库中添加另一个上游遥控器以从原始 github 存储库中提取更改。

如果根文件夹是 git repo,那么将 upstream 中的每个文件夹设置为git 子模块是最好的选择。这样,您就不需要维护三个不同版本的 repo(原始、分叉和在您的上游文件夹中)。相反,您可以在 Github 中分叉 repos,然后从上游文件夹中引用分叉。对它的任何更改都可以直接添加到分叉中。然后,您可以通过 Github 本身从 fork 向原始存储库打开拉取请求。

我还建议将根目录中的上游文件夹重命名为其他名称,因为它可能对您所指的内容非常混乱。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章