【问题标题】:How can I move branch files from an old repository to a new one without the old commits如何在没有旧提交的情况下将分支文件从旧存储库移动到新存储库
【发布时间】:2019-03-22 23:03:45
【问题描述】:

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

【问题讨论】:

    标签: git branch multiple-repositories


    【解决方案1】:

    您需要执行 checkout --orphan 以便转到该修订版(工作树内容),但其背后没有历史记录。当您进行第一次提交时,它将是根提交,其背后没有历史记录。

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

    【讨论】:

    • 我投了赞成票,因为它确实处理了初始提交场景。但这在您拥有新存储库中的文件后无济于事。使用 orphan,您可以获得所有没有提交历史记录的文件,这就是我最初要求的。但我真正想要的是使用新仓库的有限提交历史来检查一个分支(比如说 next-build),然后从上游的特定提交中获取文件。然后,这些文件将被视为已更改或添加到新的 repo 分支中。我找到了一些其他的方法来处理这个;例如上游作为子模块。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2020-11-14
    • 1970-01-01
    相关资源
    最近更新 更多