将fork与原始同步:合并和rebase问题

时间:2015-02-15 13:36:16

标签: android git github

我正在从事Android开发工作,因此我决定将我自己的团队更改上传到我的github。

我做了一些项目的分支,比如框架/基础,所以我在那里有自己的提交。当我使用本指南enter link description here

将远程原始github项目设置为远程时,问题就出现了

我希望有一个干净的历史记录,所以如果原始项目添加4个提交,我希望将它们放在我的github的顶部,一个接一个。如果我在我的个人分支中使用git rebase,那么我的历史将被重写,另一方面,如果我使用git merge,那么我将只有1次提交所有更改。

有没有办法,手动挑选每一个更改,逐个添加原始团队项目的新提交?

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您可以通过在个人分支上重新设定原始项目,然后将结果推送到远程个人分支来获得您想要的内容。

我们假设原始项目和您的个人分支各有两个提交:

original: A <- B <- C <- D
personal: A <- B <- E <- F

查看最新的原始分支,将其拉出,然后在个人分支上对其进行重新定位:

git checkout original
git pull origin original
git rebase personal

解决了rebase中的每个合并冲突后,您的本地原始分支将如下所示:

original: A <- B <- E <- F <- C' <- D'

我已将上面的提交C和D标记为素数,因为它们是在不同于原始C和D提交的代码库上进行的新提交。

最后一步是将结果推送到个人存储库。您应该能够快进远程个人回购:

git push origin original:personal

这似乎可以满足您的需求。您现在可以在个人分支中进行原始更改,而无需重写历史记录。如果我误解你的问题,请告诉我。