繁体   English   中英

如何使用Visual Studio git集成查看合并提交中更改的文件

[英]How to see the files changed in a merge commit using Visual studio git integration

我正在使用visual studio git集成并尝试查看合并提交中哪些文件已更改。

说我正在查看我的dev分支的历史,并且我已经从master合并到dev中。 如果我查看合并提交,它会显示我在dev中编辑的文件; 我想看到的是我从master合并的变化(在命令行术语中我认为我正在寻找的是“git show -m --first-parent”)。

有没有办法通过visual studio集成实现这一目标? 如果没有,是否有任何免费工具可以列出已更改的文件,然后可以调用我的标准git difftool来查看各个更改。

可以通过多种方式查看合并提交中的更改。

  • 与所有父对象的差异 - 一种常见的方法是与其所有父对象区分合并提交。 在至少一个父级中可以找到的任何更改都不是该合并提交中的更改,因此除非存在必须解决的冲突,否则合并提交将经常显示为空。

  • 使用FIRST父进行Diff - 另一种常见方法是仅使用其第一个父进行合并提交。 想法是如果合并topic-> master,那么master将是第一个parent。 然后,与master进行区分将显示从此合并中的主题分支流入的所有更改。

  • 让用户选择 - 允许与所有父母进行差异或选择特定父母。

要在合并提交显示中看到这种差异,这是使用diff-tree命令的示例。

  • “git diff-tree -m <merge_commit_id>” - 此命令将显示针对个别父母的更改。 合并提交似乎不是空的。

  • “git diff-tree -c <merge_commit_id>” - -c选项指示Git“仅列出从所有父节点修改的文件”。 除非在合并提交中直接进行冲突解决或其他更改,否则此命令将不会显示合并提交中的任何更改。

VS 2017的“提交详细信息”视图中的当前行为是与合并提交的所有父项进行区分。 我们通过用户反馈发现,这是对用户最不容易混淆的选项,因为无论合并的方向如何,它都是一致的视图。 在未来的更新中,希望该功能将得到增强,还可以支持选择要对其进行区分的单个父级。

作为解决方法,另一种选择是使用VS 2017的比较提交功能。

  1. 查看您的开发分支的历史记录。
  2. (可选)单击“仅显示第一个父项”的工具栏按钮。
  3. 选择合并提交和要与之对比的父级。 在第一个父模式下,这将是列表中的下一个提交。
  4. 右键单击并选择Compare Commits。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM