在不相关的存储库之间迁移代码

Migrate code between unrelated repositories

短背景

在我们的团队中,我们刚刚从 TFS 迁移到 git(我知道!)。但是,我们仍然需要对TFS代码库进行维护,需要将其合并到git.

上的develop分支中

我们已经做出决定,新的 git 存储库将不会镜像 TFS 的历史记录。相反,我们从包含来自 TFS 的整个代码库的初始提交开始。

所以,我们有这样的东西:

|   Dev (TFS)   |   tfs-default (git-tfs)   |   develop (git)   |
|---------------|---------------------------|-------------------|
|    CS0001     |          tfs0001          |                   |
|     ...       |           ...             |                   |
|    CS1000     |          tfs1000          |       c0000       |
|    CS1001     |          tfs1001          |       c0001       |
|    CS1002     |          tfs1001          |       c0002       |

...其中 CS1000、tfs1000 和 c0000 之后的代码库相同,之后的后续变更集和提交再次出现分歧。

附带说明一下,我正在使用 tfs bridge 将 TFS 变更集导入本地 git 存储库。 但是,这应该没有任何区别。 编辑:确实如此。 最后,我们在我的本地仓库中得到了一个分支(我们称之为 tfs-dev),它与我的 git 开发分支无关。

挑战

我很难找到可以提供良好 merging/rebasing 体验的工作流程。无论我尝试什么,我最终都会遇到冲突,其中完整文件被标记为不同(git 似乎没有检测到只有一行代码发生了变化)。

我使用的git版本:

▶ git --version
git version 2.28.0.windows.1

到目前为止我尝试了什么

所有这些解决方案导致我遇到完整的文件冲突,即使更改实际上是一行。

有人可以提出替代方案或告诉我我做错了什么吗? :)

提前致谢!

克隆到 git 时,autocrlf 默认为 falseIssue #246描述了细节。使用 git replace 导入更改时,它将引用存储库设置。必须对齐 autocrlf 以避免行尾混淆。