在具有不同历史记录的Git存储库之间合并,而不从另一个repo获取历史记录

在具有不同历史记录的Git存储库之间合并,而不从另一个repo获取历史记录,git,git-merge,git-reset,Git,Git Merge,Git Reset,我有两个git回购关闭和打开。我从closed创建了克隆的open,并将所有提交压缩为一个: $ git rev-list --max-parents=0 --abbrev-commit HEAD ffa625c $ git reset --hard ffa625c $ git merge --squash HEAD@{1} $ git commit $ git reset --soft "HEAD^" $ git commit --amend $ git gc --aggressive op

我有两个git回购
关闭
打开
。我从
closed
创建了克隆的
open
,并将所有提交压缩为一个:

$ git rev-list --max-parents=0 --abbrev-commit HEAD
ffa625c
$ git reset --hard ffa625c
$ git merge --squash HEAD@{1}
$ git commit
$ git reset --soft "HEAD^"
$ git commit --amend
$ git gc --aggressive
open
是公共GitHub回购,
closed
是私有GitHub回购。现在我在
closed
中开发了一些东西(包括它的git历史)。当我将新功能合并到
open
中时,我还从
closed
中获取所有历史记录

如何合并而不污染
打开
关闭
的历史


背景:我有一个git repo
封闭的
和封闭的源代码(包含封闭的源代码库)。现在我摆脱了所有的封闭源代码库,我想开放我的代码,但我还想让封闭源代码repo拥有它的所有历史,以便在以后进行一些封闭源代码添加,这些添加将在某个时候合并到公共存储库。

您可以尝试
git cherry pick
特定的提交:是的,但如果我必须合并大量的佣金,这会有点乏味。你试试这个
merge--squash有什么问题?使用
孤立
分支可能是一个解决方案。您可以尝试
git cherry pick
特定的提交:是的,这会起作用,但如果我必须合并大量的提交,则会有点乏味。您尝试此方法
合并--挤压
有什么问题?使用
孤立分支的方法可能是一种解决方案。