git - 如何在 GitHub 上编辑/推送/拉取父分支的父级
问题描述
对于一个项目,我使用了一个名为 Efficientnet-pytorch-3d 的 Python 包(这个github 页面)。这个 3D 实现是从一个名为 Efficientnet-pytorch(这个github 页面)的 2D 实现中派生出来的。github上的fork顺序是这样的:
lukemelas/EfficientNet-PyTorch -> shijianjian/EfficientNet-PyTorch-3D/ -> nwschurink/EfficientNet-PyTorch-3D
如您所见,我将包的 3D 实现分叉到我自己的GitHub,因为我需要添加一些我缺少的功能。我更改了代码并向 shijianjian/Efficientnet-Pytorch-3D 存储库执行了拉取请求,以将其合并到主库中。
好的,所以现在我的问题。在 2D Efficientnet-pytorch GitHub 的问题页面上,我发现有人要求我添加到 3D 实现中的功能。我可以轻松地将其添加到代码中,但是由于 2D 和 3D 代码现在完全不同,因此无法仅对我对 Efficientnet-PyTorch-3D 代码所做的更改执行拉取请求。显然不可能也将 lukemela/EfficientNet-PyTorch 分叉到我的 github 中......
如何将代码从原始存储库 (lukemelas/EfficientNet-PyTorch) 拉到我的 GitHub,进行更改,然后将其推送到 lukemelas/EfficientNet-PyTorch?
我只能找到有关如何将代码推送到我拥有的 fork 的父级的指南(例如到 shijianjian/EfficientNet-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
在这里做你的补丁并提交你的请求请求
如果需要并且可能的话,然后将此分支合并到您的主分支。
2D 项目的一些提交没有合并到 3D 中,3D 分支似乎没有与 2D 项目保持同步。
所以我认为你应该把你的工作建立在最后一个共同祖先上:
git checkout -b mySuperFix d8481a539cc1f84ef0fe502f9c12dcc187669611
这可能更容易,或者您可以先将 2D 提交合并到 3D 项目中,然后基于 2D 主文件进行提交
推荐阅读
- r - 如何删除2列中具有重复值的行但在R中保留具有特定因子的指定行
- rust - Rust 语法 `if let [.., last] = self ...` 是什么意思?
- java - jayway jsonpath 在读取不存在的 json 路径时抛出错误,尽管配置为
- css - 链关键帧动画
- django - 使用 HTTPS 应用程序负载均衡器时 Django Fargate Docker 中的 CSRF 错误
- git - 如何将代码从 GoDaddy 的 cPanel 复制到私有 GitHub 存储库?
- c# - 无需用户交互的 GraphicsCaptureItem 捕获窗口
- javascript - 为什么 Enzyme 的`find()` 会错误地返回不存在的元素?
- react-admin - React Admin - 如何在更改时自动填充(更新)字段值
- ios - 试图通过委托从不同的视图中设置 UIImage