我分叉了一个公共回购并将新回购私有化。
我在我的私人仓库中添加了一个新的远程分支,并提交了一些修复程序。
现在,我想从我的私人仓库中的分支机构向我分叉的公共仓库创建一个拉取请求。
我在私人仓库中选择分行,然后点击“拉取请求”。
我点击“更改提交”。
我无法更改组织/回购所有者。我只看到我的组织,但不是公共回购。我只能针对私人仓库的主分支创建一个拉取请求,但这不是我想要的。
是否无法在私人仓库中修复某个公共仓库并在之后创建拉动请求?
答案 0 :(得分:6)
一种解决方案是将原始的公共仓库分配到您在GitHub上的公共仓库中 然后将公共仓库(您拥有的)分成私有仓库。
然后在本地工作站上克隆两者,并且:
答案 1 :(得分:4)
我怀疑这是Github的意图,但你实际上可以通过一些简单的DOM操作从私有到公共仓库发出拉取请求:
一些警告:
答案 2 :(得分:3)
@VonC 的回答在概念上是正确的,并且仍然是 GitHub 支持的。九年后,@Sebi 终于得到了他想要的答案——我消除了他在 VonC 答案的第二个要点中评论的“间接”。
对于我的用例,我需要对公共存储库进行 public 和 private 更改。公共提交一旦准备好就可以定期推送。私人更改必须保留在我的私人仓库中,直到我完成我的博士研究。那时,我需要所有私有更改通过拉取请求从我的公共分支流到原始公共存储库。
大部分工作是正确设置事物。我提供了 detailed steps in this SO answer。以下步骤仅在 Eclipse GUI(v2020-12;EGit 5.11)中完成,但可以轻松转换为命令行操作。我使用的存储库是这些:
eclipse/org.aspectj
是原始公共存储库;用于获取的 upstream
遥控器cb4/org.aspectj
是我的叉;用于推送的 origin
遥控器cb4/remPrivAJ
是我的远程私有仓库; private
用于推拉的遥控器I:\local
是我工作站上的本地存储库对于 github 身份验证,我使用带有 ed25519 ssh 密钥 (how-to in this SO question) 的 ssh,因此我的连接 URI 如下所示:ssh://git@github.com/<user>/<repo>
。
符号:->
是鼠标点击或选择; right->
和 double->
分别是右键单击和双击。
我通过将每个更改放在单独的分支中来将公共更改与私有更改分开:pub
用于 公共 更改; priv
用于私有更改。我对 git 还很陌生,所以可能有更好的方法来做到这一点。
Branches
然后打开Local
(每个旁边都有-> v
)right-> master -> Create Branch -> Select -> private/master -> Ok
输入 priv for Branch name: -> Configure upstream for push and pull -> When pulling: Merge -> Finish
right-> master -> Create Branch
输入 pub for Branch name: -> Finish
private/master
、我的公共分支 orign/master
和原始公共仓库 upstream/master
中提交的编号都匹配
Git Staging
选项卡上查看有关它们的详细信息-> Commit and Push -> Preview -> Push -> Close
right-> priv -> Push Branch -> Remote: dropdown v -> origin: URI
(我的是原点:ssh://git@github.com/cb4/org.aspectj)double-> master
在 Branch: 文本框中输入 priv
然后 {{ 1}}附加特性和功能
Compare & pull request
right-> pub -> Push Branch -> Preview -> Push -> Close
right-> upstream -> Fetch
right-> origin -> Push