合并提交并推送到分叉的回购

我有一个回购(bitbucket.org/mine/project),我从另一个回购(client.com/theirs/project)中分出。 我做了一堆提交给我,现在我想推回到他们的回购。 我知道我可以把它推到上游回购,但它似乎包括所有提交。 我目前的解决方法是我有两个项目克隆和复制文件从我的回购工作目录到他们的回购工作目录和提交。 绝对不理想。 当我推动时,如何将我的提交压缩为单个提交,但保留完整的历史记录

试图说明这个问题:

Client       ---- forked ------>      Bitbucket

their/project                         mine/project

commit #A                             commit #A
commit #B                             commit #B
commit #C                             commit #C

                                  |-  commit #1
                                  |   commit #2
                                  |   commit #3
commit #D    <----- how? ------   |-  commit #4   // I want to keep my commits

引用:

https://help.github.com/articles/merging-an-upstream-repository-into-your-fork/#platform-mac

在推入Git之前合并多个提交


我不确定是否有任何直接的方式来做到这一点,但我可以建议你一个解决方法:

收回您当地的分支机构。 假设你的分支是主人,你的背部布拉德名字就像主备。 你可以使用下面的git命令。

git branch master-backup

如果你在同一个分支上。 或者你也可以使用

git branch master-backup master

squash your commit按照链接。 现在,分支通过梳理所有提交来进行单一提交。

git push origin master (用单一提交将你的更改压扁到上游)

git reset --hard master-backup (让你的旧提交回本地主)


their/project Github仓库的所有者可以通过选择通过Pull Request UI从分支中Squash and Merge提交来为您做这件事:

在这里输入图像描述

链接地址: http://www.djcxy.com/p/49051.html

上一篇: Combine commits and push to forked repo

下一篇: Git error when trying to push