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

标签 git visual-studio visual-studio-2017

通过我们的工作流程,这是对 gitflow 的轻微修改,我们将拥有一个具有我们功能的本地分支。然后我们在那个分支上做我们的特性/修复,将它推送到服务器,让它审查,然后将它 merge 到主干。
在工作时,我想看看我从分支开始的地方做了哪些更改。但是,如果我提交了一些更改,我将无法从那时起看到我的更改。很高兴从分支点看到更改以确保我的所有更改都有效,但我只能通过 Compare with Unmodified... 查看对上次提交的更改。
作为一种解决方法,我认为我至少可以查看文件的历史记录,并通过上下文菜单查看从当前文件到其中列出的文件的更改,但该选项也不可用。您只能与 2 个现有提交进行比较。
似乎我只能从命令行看到从我的 HEAD 到历史中任意点的变化。我是否错过了一些深奥的方式来查看我未提交的代码对历史中的任意点?或者这个功能不存在?
编辑
与其他人交谈并给出对这个问题的唯一回答,目前看来这是不可能的。
在这种情况下,我创建了一个用户语音项 here 以将此功能添加到 Visual Studio,并要求其他人对其进行投票,以便他们在下一个版本中考虑它。
谢谢

最佳答案

让我们从控制台转到 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接口(interface)应用

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

    MSVS

    将所有东西都放在一个地方将是一个梦想,但恕我直言,即使是最新的 Visual Studio 也对 git 命令的支持非常有限。发生这种情况是有充分理由的:git 非常全面,所以即使是完全致力于包装 git 命令的应用程序也不能完全一致地做到这一点。 Visual Studio 允许执行基本的日常任务,但任何更具体的查询都超出了它的范围。

    关于git - 有没有办法通过 VS IDE 将我未提交的源代码与 git 中的任意历史记录项进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47597464/

    相关文章:

    git - 如何在推送后显示 Visual Studio git 中的所有更改

    Github 权限被拒绝(公钥)不提供 shell 访问

    c++ - Visual Studio 控制台应用程序是否使用 CRT

    c++ - 在 Visual C++ 上使用模板函数时遇到问题

    c# - Nuget - 包恢复失败。回滚 'WebApplication1' 的包更改。 0

    git - 从 git 历史记录中删除大文件?

    Visual Studio 上的 GIT 远程扩展 - 显示大量未知更改

    c++ - 获取所有现有 vtables 的列表

    asp.net-core - Visual Studio 2017 安装破坏了 Visual Studio 2015 ASP.NET Core 项目

    linux - Visual Studio 2017 无法创建目录,mkdir 退出代码 : 1