【发布时间】:2015-11-27 20:32:19
【问题描述】:
在我发现 git 的强大功能之前,我曾经为我的代码拍摄快照并存储在我的服务器上。
我有一个我正在处理的项目的现有 git 存储库,但我在我的服务器上发现了一些旧版本,我想更新到 git 中。
有没有办法可以将这些旧版本追溯添加到 repo 中,保持正确的序列开发?
【问题讨论】:
-
这可能会有所帮助:How do I make a Git commit in the past?.
在我发现 git 的强大功能之前,我曾经为我的代码拍摄快照并存储在我的服务器上。
我有一个我正在处理的项目的现有 git 存储库,但我在我的服务器上发现了一些旧版本,我想更新到 git 中。
有没有办法可以将这些旧版本追溯添加到 repo 中,保持正确的序列开发?
【问题讨论】:
我建议反其道而行之。将最新的快照源放入 git repo 并尝试应用当前 repo 中的所有提交。也许使用git format-patch。如果旧源的状态和您当前 repo 的第一次提交没有太大差异,这应该可以工作。
【讨论】:
如果您尚未发布存储库,则从您的快照中创建提交并在它们之上rebase您的分支。
如果您已经发布了存储库并且您的合作者不介意切换到一个全新的重新设置分支(这可能需要他们重新设置自己的更改),那么您也可以这样做。
如果您已经发布并且不想打扰任何人但仍想添加这些提交以用于文档目的,您可以单独创建一个新的根分支。此时您有一个选择:保留它,或者将分支“附加”到您的主分支。通过“附加”,我的意思是“创建一个以两个分支头为父级的提交,并带有主分支的状态”。你可以称它为“合并提交”,但显然分支并不是真正的“合并”,因为主分支已经反映了适当的状态。为此,我建议您使用commit-tree 和write-tree。这使得提交更容易被发现,尽管可能会让一些人感到困惑。您可能也想回溯它们。
根据您的选择,我鼓励您提出一个新问题或改进您当前的问题。
【讨论】: