【问题标题】:Is it possible to preserve git version history for moved files when splitting a repository?拆分存储库时是否可以保留移动文件的 git 版本历史记录?
【发布时间】:2012-05-01 22:16:14
【问题描述】:

我看到了这个question,但答案没有讨论保留在第一个存储库拆分之前移动的文件的历史记录。

我感兴趣的是以下场景:最初有一个 repo,并且由于重构,一些文件已在不同时间在此 repo 中移动。现在,我们通过从这个 repo 中选择一个文件子集来创建另一个,来拆分这个初始 repo。如果我们使用 --subdirectory-filter 参数执行 filter-branch,我们可以将新 repo 限制为仅与剩余文件相关的历史记录。
但是,经过一些实验后,这似乎会破坏上次移动文件之前创建的文件中的历史记录(即,git log --follow 不再有任何文件重命名记录要遵循)。

有什么办法可以让git blamegit log 在执行filter-branch 命令时仍然可以跟踪文件的完整历史记录,或者是否有任何其他方法可以保留文件的历史记录?移动或重命名?

【问题讨论】:

  • 为什么不只是git clone repo 并从每个文件中删除您不想要的文件?
  • 我在您的问题中阅读了“保留文件历史记录”,这就是为什么我认为您想保留每个文件的历史记录。 :-)
  • 等等,你想要历史的变化,而不是文件本身吗?
  • 是的,保留在新仓库中的所有文件的历史记录,但不是被过滤掉的文件的历史记录。

标签: git


【解决方案1】:

保持大(原始)存储库原样,创建两个包含所需内容的新存储库,并使用 git 移植将它们粘合到原始存储库。

这样您就不需要整个历史记录的两个单独副本,而那些根本不需要历史记录的人也不必克隆它。

【讨论】:

    猜你喜欢
    • 2011-04-22
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多