合并提交并推送到分叉的回购
我有一个回购(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
提交来为您做这件事: