C# 如何将可视化冲突解决(P4Merge)集成到SourceTree中
很长一段时间以来,我一直被SourceTree缺乏可用的冲突解决方案所困扰 应该有一个将p4Merge或其他一些diff/merge工具集成到SourceTree中的过程。目前,p4Merge是我选择的工具;现在我只需要想办法C# 如何将可视化冲突解决(P4Merge)集成到SourceTree中,c#,git,visual-studio-2015,sourcetree,p4merge,C#,Git,Visual Studio 2015,Sourcetree,P4merge,很长一段时间以来,我一直被SourceTree缺乏可用的冲突解决方案所困扰 应该有一个将p4Merge或其他一些diff/merge工具集成到SourceTree中的过程。目前,p4Merge是我选择的工具;现在我只需要想办法 获取SourceTree以接受p4Merge作为其合并/差异工具,以及 能够从SourceTree实际调用p4Merge来解决冲突 到目前为止,我唯一成功的一件事就是让P4Merge从SourceTree中显示一个diff。因此,操作/External Diff菜单项起作
SourceTree的版本是1.9.5.0,应该是本文撰写时的最新版本。P4Merge似乎没有“帮助/关于”对话框,但它是最近安装的(在过去3个月内)。我有SourceTree 1.5.2.0版,并且配置了外部合并工具,如屏幕截图所示。P4Merge安装在C:\Program Files\Performance中,不在
路径上。我没有在.gitconfig中设置任何关于diff/merge工具的特定值(我意识到这是一种“在我的机器上工作”,但它确实很简单)
对于工作流,不同的团队可能有不同的方法。我们团队中每项功能工作(通常由一名开发人员完成)的工作如下(如何在SourceTree中执行每个操作的屏幕截图见本文末尾):
再基地发展处
创建新要素分支
处理功能,进行提交(通常是多次提交)
如果自分支完成后有许多更改需要开发,我们可以将develop合并到我们的feature分支,以解决任何潜在的冲突,并确保feature仍然有效
合并到开发分支,然后推送-我们的CI配置为在将新更改推送到开发分支时触发到测试环境的部署
若一切正常,我们将开发分支合并到主分支,这将触发到生产环境的部署
要重新确定基础,请开发:
要从develop中创建新分支,请执行以下操作:
要将“开发”合并到“要素”分支,请执行以下操作:
以下是SourceTree显示合并后存在冲突的方式:
更新:为了验证SourceTree是否配置正确,我建议您执行以下操作:
从本地下载并解压缩一个小型存储库,其中包含两个分支
通过执行:File-Clone/New…-添加工作副本-[选择文件夹'git config']
右键单击名为“origin/version-2”的分支并选择“merge”
您应该会看到关于合并冲突的警告,然后右键单击file.txt后,将显示以下内容:
我想你对P4Merge没有问题。你的问题是
操作/解决冲突/启动外部合并工具菜单项不存在(变灰)
我认为sourceTree有这种行为,因为当前分支中没有冲突。
您可以简单地检查以下内容:
运行命令git mergetool master-d并查看输出。我想输出将是没有文件需要合并
如果您在当前分支sourceTree中有未解决的冲突,请为我启用操作/解决冲突:
如果使用P4Merge和其他合并工具sourceTree解决问题,请编辑一个问题。。。。除了原来的问题。这包括“推前拉”和“在SourceTree中单击何处以获取要启用的“解决冲突”菜单项。这些设置不起作用。“启动外部合并工具”“菜单选项仍为灰色。已看到您的编辑。”。看来我终究要成为一名Git专家了。为一个愚蠢的问题提前道歉:在合并后,当前分支中确实存在冲突,对吗?如果是,您是否可以显示当您在屏幕上的“工作副本更改”部分中单击文件时出现的关联菜单的屏幕截图?它看起来总是像我在问题中已经提供的屏幕截图。我还没有看到“解决冲突”上下文菜单项启用。通过查看您的屏幕截图,我得到一个印象,您的合并成功,没有冲突。我将在我的答案中添加一个图像,以显示当存在合并冲突时UI的外观(您将看到分支将变为灰色,而不是在图片中可见的蓝色)。我的一个普遍假设是,我不必使用命令行来执行此操作。毕竟,这就是使用SourceTree.Yes的全部意义所在。命令git mergetool master-d
只是一个测试。运行一次并查看输出。如果输出为无需合并文件
,则表示SourceTree工作正常。你没有需要解决的冲突。