在VisualStudio中执行GIT拉取时如何正确处理合并
在处理合并时,我无法使GIT for TFS在Visual Studio中正常工作。基本上,当我提取最后一个版本的代码时发生的每个合并操作都是一场噩梦 我特别谈论的是当从同一分支提取其他人的代码时发生的合并(即,我不是在谈论涉及多个分支的场景) 我还特别提到了Visual Studio的内置GIT插件,因此,如果IDE中有其他解决方案,请不要建议执行我知道的命令行命令(如rebase)(“您不能”将是一个有效的答案) 下面是如何重现这个问题:在VisualStudio中执行GIT拉取时如何正确处理合并,git,visual-studio,visual-studio-2013,tfs,visual-studio-2015,Git,Visual Studio,Visual Studio 2013,Tfs,Visual Studio 2015,在处理合并时,我无法使GIT for TFS在Visual Studio中正常工作。基本上,当我提取最后一个版本的代码时发生的每个合并操作都是一场噩梦 我特别谈论的是当从同一分支提取其他人的代码时发生的合并(即,我不是在谈论涉及多个分支的场景) 我还特别提到了Visual Studio的内置GIT插件,因此,如果IDE中有其他解决方案,请不要建议执行我知道的命令行命令(如rebase)(“您不能”将是一个有效的答案) 下面是如何重现这个问题: 有两个开发人员,A和B,在同一个分支上工作 开发人
- 有两个开发人员,A和B,在同一个分支上工作
- 开发人员A推送一些修改文件F1和F2的提交
- 开发人员B修改文件F1和F3
- 开发人员B提交对F1和F3的修改
- 开发人员B执行拉取:Visual Studio检测到文件F1上存在冲突(这是预期的)
- 开发人员B解决F1上的冲突
编辑: 这是一个直观的例子。在左边,VS 2013中显示的历史:大量修改的文件。在右边,是与VS 2015中显示的非常相同的历史记录(相同的存储库、相同的机器、相同的提交…等等)。很明显,VS 2015显示了一些不同的、稍微好一点的东西(我只看到我的变化)。请注意,这并不总是这样,有时VS 2015会显示我没有修改的文件,就像VS 2013一样 这个问题是关于我将要推送合并结果时的行为,但当我只是查看旧合并的历史记录时,情况完全相同,如下所示: 问题是:
- 这是虫子吗
- 如果没有,是否有文件记录
- 在任何情况下,我应该如何处理GIT,特别是VS2013,上面所示的不一致性
总结一下,当合并失败时,您可以看到更改和冲突。只需专注于解决冲突,让常规更改保持原样 我已经将VisualStudio2013与Git结合使用&对于上面提到的场景,它工作得非常好 我的建议是检查这些开发人员的用户设置是否存在一些差异。行尾、制表符空间或使用Ctrl+K+F(格式化快捷方式)的任何更改都可能导致问题 我建议卸载任何自定义插件、除本机VS支持之外的工具,并将Visual Studio更新为最新补丁 如果问题仍然存在,请尝试在Visual Studio中的所有开发人员中导入相同的用户设置。参考: 工具=>导入和导出设置..=> 下一步=> 导出此设置并导入到所有其他用户,以便所有用户都具有相同的设置
不同的插件,如git extensions、tortoise git或任何其他自定义git扩展,都可以使用行尾或默认选项卡空间,从而导致任何开发人员在几乎所有更改的文件中检测到更改。因此开发人员B修改了F1和F3,但没有推送到远程分支,对吗?@TriskalJM是的,就是这样。通常,您不会通过查看未提交的合并来确定两个分支的区别。在完成合并并提交合并后,通常会将分支与上游分支进行比较。并可能有助于阐明其中一些概念。一个小建议。学习如何使用GitBash。这样,您将始终能够使用git。现在你是视觉工作室的沃克林,几年后你可能会在Webstorm或Eclipse中工作。。学习每个单独的集成git工具都会很麻烦,所以我真的建议学习可用的通用git工具。@Edvin好吧,我使用Visual Studio已有10多年了,除了VS之外,我从未做过任何与源代码管理相关的基本任务(除了文件差异)。我真的不想因为GIT现在就开始。如果我的简单问题没有解决方案,GIT或VS都会崩溃