我们正试图远离TFS.使用git-tfs工具,我们能够迁移现有仓库的一部分,但在某些麻烦的签入时崩溃了.我们已经能够制作一套拼凑的Git repos,它涵盖了大多数原始TFS提交.
目前有:
期望:
我们有什么方法可以将它们拼接成一个Git仓库吗?我们不关心保留SHA(它们都是新的),但我们无法破坏文件历史记录.
编辑:最近版本的 git 现在扩展了git replace命令以更轻松地使用git replace --graft <commit> <parent>(参见https://git-scm.com/docs/git-replace#Documentation/git-replace.txt---graftltcommitgtltparentgt82308203)
使用 git 的“嫁接”功能有一种简单的方法可以做到这一点。这是一个与git replace@torek 提到的目标相同的功能,但在您的情况下更容易使用。
首先,导入同一存储库中的所有历史记录。在最近的存储库中,为另外 2 个执行:
git remote add c:/path/toward/other/repositorygit fetch然后.git/info/grafts按照帮助创建 git 移植文件:https :
//git.wiki.kernel.org/index.php/GraftPoint
(您的文件中应该有 2 行)
如果您使用git log或任何 Git GUI,您现在应该可以看到您想要的历史记录。
如果您满意,则重写历史记录以使其具有确定性:
git filter-branch
您现在可以将历史记录推送到中央存储库或共享它。
Ps:关于该主题的另一个文档,但融合移植并替换 git 功能:https : //legacy-developer.atlassian.com/blog/2015/08/grafting-earlier-history-with-git/
| 归档时间: |
|
| 查看次数: |
209 次 |
| 最近记录: |