如何在GitHub上编辑/推/拉父叉的父叉



对于一个项目,我正在使用一个名为Efficientnet-pytorch-3d的Python包(这个github页面(。这个3D实现是从一个名为Efficientnet pytorch(这个github页面(的2D实现派生而来的。github上的分叉顺序如下:

lukemelas/EfficientNet-PyTorch -> shijianjian/EfficientNet-PyTorch-3D/ ->  nwschurink/EfficientNet-PyTorch-3D

正如你所看到的,我将包的3D实现分叉到我自己的GitHub,因为我需要添加一些我缺少的功能。我更改了代码,并向Shijian Jian/Eefficientnet-Pytoch-3D repo执行了一个pull请求,将其合并到master中。

好的,现在我的问题来了。在2D Efficientnet pytorch GitHub的发布页面上,我发现有人在询问我为3D实现添加的功能。我可以很容易地将其添加到代码中,但是,由于2D和3D代码现在非常不同,所以不可能只对我对Efficientnet-PyTorch-3D代码所做的更改执行拉取请求。显然,不可能将lukemela/EfficientNet PyTorch也插入我的github。。。

我如何将代码从原始repo(lukemelas/EefficientNet PyTorch(拉到我的GitHub,进行更改,然后将其推送到lukemelas/Eefficient Net PyTorh?

我只能找到如何将代码推送到我所拥有的fork的父级的指南(例如,到shijianjian/EefficientNet-PyTorch-3D(,但我似乎找不到如何到达父级的父级。

下面是我将如何处理它。

添加上游

git remote add upstream_2D git@github.com:lukemelas/EfficientNet-PyTorch.git

获取内容

git fetch upstream_2D

创建一个指向上游主节点(或最后一个公共祖先,见下文(的分支。

git checkout -b mySuperFix  upstream_2D/master

在此处执行您的补丁并提交您的Pull Request

如果需要并且可能的话,请将此分支合并到主分支。

2D项目的一些提交没有合并到3D项目中,3D分叉似乎没有与2D项目保持同步。

所以我认为你应该把你的工作建立在最后一个共同祖先的基础上:

git checkout -b mySuperFix  d8481a539cc1f84ef0fe502f9c12dcc187669611

这可能更容易,或者你可以从将2D提交合并到3D项目开始,然后基于2D主进行提交

最新更新