【问题标题】:Git: How to push to someone's fork?Git:如何推送到某人的叉子?
【发布时间】:2025-12-20 23:20:16
【问题描述】:

我为一个开源项目工作并已经分叉了它。也有人分叉了它,并且一直在研究一些不会很快被推向起源的有趣想法。我想帮助他,因此我将他的叉子克隆到我的电脑上。但是,我不能直接将我的工作推到他的叉子上。我也不能分叉他,因为我已经有一个原产地的叉子。我该怎么办?谢谢

【问题讨论】:

  • 将分叉的 repo 作为另一个远程添加到本地存储库,从该远程获取更改,将您要发送的工作重新设置到分叉的工作上,然后将您的更改推送到另一个远程(或发送公关)。
  • @JeffMercado:你能用所有必要的 git 命令添加答案吗?谢谢

标签: git github gitlab


【解决方案1】:

假设您的存储库如下所示:

#Add the forked repo as another remote to your local repository
git remote add someone https://fork.url                 #create remote called "someone"

#fetch the changes from that remote
git fetch someone

#rebase the work you want to send onto the fork's work
git branch for-someone my-branch                        #create branch "for-someone" at "my-branch"
git rebase master for-someone --onto someone/master     #take commits from the "for-someone" branch down to your "master" branch and rebase it onto someone's "master" branch

#then push your changes to the other remote
git push someone for-someone                            #push branch "for-someone" to the "someone" remote

插入更合适的远程和分支名称。

【讨论】:

    【解决方案2】:

    您可以像@jeff-mercado 提到的那样做两件事。这将是一项复杂的任务,我建议您为此使用基于 GUI 的 git 客户端。我遇到了和你一样的问题,发现Sublime Merge 非常有用。

    我建议让他给你发一份 PR。 然后您将能够将他的更改合并到您的存储库中 最后,您可以将合并的 repo 推送到您的 github 上,并要求他克隆它并推送。 (这是假设其他人不会做合并你的 PR 的工作,这对你来说会更容易。)

    【讨论】:

    • 看起来你提到的场景不是我现在的场景。有主回购,他的分叉和我(第三个人)想为他的分叉做出贡献,而不是主回购,不是我的回购。我想对他的 repo 做一个 PR。
    • 这个链接可能对*.com/questions/5606048/…有帮助
    • 不,这无济于事,因为它只有大约 2 个人,并且从第 2 个人合并到第 1 个人