Git 如何在没有旧提交的情况下将分支文件从旧存储库移动到新存储库

Git 如何在没有旧提交的情况下将分支文件从旧存储库移动到新存储库,git,branch,multiple-repositories,Git,Branch,Multiple Repositories,我正在为我们的下一代产品创建一个新的原始存储库。我需要使用旧回购协议中的一些“状态”——类似于樱桃采摘。事实上,从功能上讲,它只是在旧的repo上重置为提交,然后将文件更改提交到新的存储库。我确实发现我可以签出旧的分支,重置——软到最早的提交,然后提交这些文件。但这似乎是一个黑客。由于我将上游和源代码视为一种模式,因此这种情况似乎并不少见,尽管我猜大多数情况下都需要提交。您需要执行签出-孤立,以便转到该修订版(工作树内容),但后面没有历史记录。当您执行第一次提交时,它将是根提交,没有任何历史记录

我正在为我们的下一代产品创建一个新的原始存储库。我需要使用旧回购协议中的一些“状态”——类似于樱桃采摘。事实上,从功能上讲,它只是在旧的repo上重置为提交,然后将文件更改提交到新的存储库。我确实发现我可以签出旧的分支,重置——软到最早的提交,然后提交这些文件。但这似乎是一个黑客。由于我将上游和源代码视为一种模式,因此这种情况似乎并不少见,尽管我猜大多数情况下都需要提交。

您需要执行签出-孤立,以便转到该修订版(工作树内容),但后面没有历史记录。当您执行第一次提交时,它将是根提交,没有任何历史记录

git checkout ---orphan -b new-branch some-revision-to-get-working-tree

我提高了投票率,因为它确实处理初始提交场景。但是,在新的回购协议中有文件后,这没有帮助。使用孤儿,您可以获得所有没有提交历史记录的文件,这正是我最初要求的。但我真正想要的是用新repo有限的提交历史签出一个分支(比如下一个构建),然后从上游的特定提交中获取文件。这些文件将被视为在新的回购分支中更改或添加。我找到了一些其他的方法来处理这个问题;e、 g.上游作为子模块。