如何在不需要历史的情况下合并两个回购?

时间:2015-08-05 14:13:36

标签: git github

我有两个回购。一个是私人的发展,一个是公开的官方。

我在开发回购中完成所有工作,所有提交历史都在那里。现在我想在一次提交中将开发合并到官方,但我不希望所有历史都来自开发。只需在一次提交中实际代码更改合并。

到目前为止,我没有找到任何方法将回购A合并到回购B而没有回购A的历史。我绑了http://blog.caplin.com/2013/09/18/merging-two-git-repositories/但没有运气并尝试了几个像Import a git repository with all its history into an existing git repository

2 个答案:

答案 0 :(得分:1)

这是git merge --squash的工作。

  1. 为要压缩的提交创建一个分支(如果尚未创建),我们称之为dev
  2. master(或任何其他分支)设置为您要提交的点。
  3. 然后发出以下命令:

    git checkout master
    git merge --squash dev
    git commit
    

    这将在您的本地仓库中创建一个新的提交,其中包含dev分支的所有更改。然后,您可以将提交推送到远程仓库。

答案 1 :(得分:0)

  1. 确保开发回购的工作副本是最新的;没有未提交的更改。

  2. 将所有工作文件从开发回购复制到公共回购。

  3. 从公共存储库的工作副本中删除不在开发回购工作副本中的所有文件。

  4. 将更改提交给公共回购。