在VS IDE中,是否有一种方法可以比较我的未提交的源代码与git中的任意历史版本进行比较?

6

通过我们的工作流程,这是在gitflow的基础上进行的微小修改,我们将拥有一个具有特性的本地分支。我们然后在该分支上完成我们的特性/修复,将其推送到服务器,进行审核,然后将其合并到主干。

在工作时,我想看看我从哪个分支开始做出了哪些更改。但是,如果我提交了一些更改,我就无法从那个点看到我的更改。从分支点查看更改以确保所有更改都有效是很好的,但是我只能通过“与未修改内容比较”来查看到最后一次提交的更改。

作为解决方法,我认为我至少可以查看文件的历史记录,并通过上下文菜单查看当前与其中一个列出的更改之间的更改,但该选项也不可用。您只能与2个现有提交进行比较。

似乎我只能从命令行中将我的HEAD与历史上的任意点进行比较。我是否错过了查看未提交的代码与历史上的任意点的某种晦涩方法?还是这个功能不存在?

编辑

和其他人交谈并考虑到此问题唯一的答案,似乎目前不可能实现这一点。

如果是这样的话,我在此创建了一个uservoice项目here,以将此功能添加到Visual Studio,并请其他人为其投票,以便他们考虑在下一个版本中添加它。

谢谢


@ChannaveerHakari已经说过了:“似乎我只能从命令行中查看从HEAD到历史上的任意一点所做的更改。”这不是我想要的。我想在IDE内完成,这样我就可以编辑带有突出显示更改的文件。 - Adrian
1个回答

1

让我们从控制台转向IDE

控制台

当然,您可以在控制台中执行很多操作:

  • 将工作树(当前代码状态)与历史上的任何一点进行比较:git diff COMMIT_HASH
  • 查找最接近的共同祖先:git merge-base feature_branch parent_branch
  • 组合在一起:git diff $(git merge-base feature_branch parent_branch)

差异工具

您可以配置首选的差异工具,因此在控制台中启动git difftool $(git merge-base feature_branch parent_branch)将在指定的图形应用程序中显示每个文件的更改。我还没有习惯它,所以不会详细介绍,但是网络上有很多信息。

Git界面应用程序

许多图形化应用程序几乎完全包装控制台命令,包括您的情况。我喜欢控制台,但更喜欢在 GUI 中进行代码差异/合并。我使用免费开源的 TortoiseGit 正是为了您的情况,只需右键单击项目文件夹并选择 TortoiseGit > 与上一个版本进行比较 即可。比较基础可以直接设置哈希或从日志列表中选择条目来设置,工作副本用特殊的“00000000”哈希表示。在一个地方拥有所有更改文件的列表非常方便,打开任何选择的文件的 diff 允许即时修改它。除了 IDE 自动完成外,您想要的一切都有。

MSVS

拥有一切都在一个地方将是一个梦想,但在我看来,即使是最新的 Visual Studio 也仅提供有限的 git 命令支持。这是有原因的:git 实在是太全面了,所以即使是完全专用于包装 git 命令的应用程序也无法完全和一致地执行它。Visual Studio 可以执行基本的日常任务,但任何稍微具体的查询都超出了它的范围。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接