有没有办法通过 VS IDE 将我未提交的源与 git 中的任意历史记录项进行比较?

Adr*_*ian 6 git visual-studio visual-studio-2017

通过我们的工作流程,这是对 gitflow 的轻微修改,我们将拥有一个具有我们功能的本地分支。然后我们在该分支上执行我们的功能/修复,将其推送到服务器,对其进行审查,然后将其合并到主干。

在工作时,我喜欢看看我从分支开始的地方做了什么改变。但是,如果我提交了一些更改,从那时起我将无法再看到我的更改。很高兴从分支的角度看到更改以确保我的所有更改都有效,但我只能通过Compare with Unmodified....

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

似乎我只能从命令行看到从 HEAD 到历史记录中任意点的更改。我是否错过了一些针对历史上任意点查看未提交代码的深奥方式?或者这个功能不存在?

编辑

与其他人交谈并给出对这个问题的唯一回答,目前看来这是不可能的。

在这种情况下,我在此处创建了一个 uservoice 项以便将此功能添加到 Visual Studio,并请其他人为它点赞,以便他们在下一个版本中考虑它。

谢谢

nno*_*-OK 1

让我们从控制台转向 IDE

安慰

好吧,当然,你可以在控制台中做很多事情:

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

差异工具

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

Git接口应用

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

MSVS

将一切都集中在一个地方是一个梦想,但恕我直言,即使是最新的 Visual Studio 也对 git 命令提供非常有限的支持。发生这种情况是有充分理由的:git 确实非常全面,因此即使是完全致力于包装 git 命令的应用程序也无法完全一致地完成它。Visual Studio 允许执行基本的日常任务,但任何更具体的查询都超出了其范围。