我们有一个庞大的ASP.Net解决方案,包含96个项目,2k +文件。最近我们需要做一个主要的第三方DLL更新,这需要全面的代码更改,我们还借此机会清理每个项目的引用,以减少构建时间。我们所有的代码都驻留在TFS2010中。我们使用VS2010进行所有工作。在本练习中,我们决定试用git,因为它以分支和合并而闻名。我们在TFS中分支和合并真的很痛苦。由于这没有功能变化,所以我们决定不像往常那样做发布分支。
我们从最新的代码开始,创建了一个新的git repo并从那里开始我们的代码更改,而我们现有的团队继续使用TFS进行生产错误修复。现在谈到合并的时候了。我们使用手动合并,发现它太费时间和令人困惑。所以我们在我们的git repo中创建了一个名为'tfs'的分支,并编写了一个脚本,以便在分支和提交到我们的git repo之后通过TFS变更集的版本检出版本。在第一次提交到tfs时,我们意识到我们已经打开autocrlf
所以我们将其关闭并重做提交。 (现在我们意识到这可能是一个很大的错误,主分支都在lf
)。所有后续提交到tfs
分支的都是crlf
。
现在,当我们尝试从分支的两端执行git merge
时,冲突显示在2个大块而不是更改行中,这使得合并更加困难。我们应该如何利用git的回放功能来合并我们当前的情况?
如果需要进一步澄清,请告诉我,以便更清楚。我还阅读了How to repair CRLF in GIT repository to avoid merge conflicts,但对我们的合并工作流程的任何进一步建议都会非常有用。
提前谢谢
编辑:谢谢大家,我最终通过使用tfs_crlf
创建一个新的分支autocrlf=input
来修复CRLF(我使用的是linux机器)然后检查每个tfs
提交和将文件复制到tfs_crlf
并提交相同的建议。我编写了整个脚本,现在合并和冲突文件按预期显示