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

how to merge two repos without needing history?

我有两次休息。一个是私人的发展,一个是公共的官方发展。

我在开发报告中做了所有工作,所有提交历史都在其中。现在我想把开发合并成正式的一个承诺,但我不希望所有的历史从开发。只需在一次提交中合并实际的代码更改。

到目前为止,如果没有回购A的历史记录,我无法找到将回购A合并到回购B中的任何方法。我绑定了http://blog.caplin.com/2013/09/18/merging-two-git-stores/,但没有运气,尝试了几次,比如将所有历史记录的git存储库导入到现有的git存储库中。


这是git merge --squash的工作。

  • 为您想要压扁的承诺创建一个分支(如果您还没有创建一个分支),我们称之为dev
  • master或任何其他分支设置为您要承诺的点。
  • 然后发出以下命令:

    1
    2
    3
    git checkout master
    git merge --squash dev
    git commit

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


  • 确保开发报告的工作副本是最新的;没有未提交的更改。

  • 将开发报告中的所有工作文件复制到公共报告中。

  • 从公共回购工作副本中删除开发回购工作副本中没有的所有文件。

  • 提交对公共回购的更改。