如何查看vscode并排文件上的git diff?

时间:2018-07-13 00:39:34

标签: git visual-studio-code git-diff git-fetch git-difftool

大家好,我的问题是关于git diff的,我想知道如何在VSCODE终端上以命令git diff master origin/master的形式查看文件,我从git fetch我的远程存储库,现在我想查看差异,但使用命令仅在终端中向我展示。 我正想得到类似的东西...

我想要的例子:

enter image description here

12 个答案:

答案 0 :(得分:8)

左侧VSCODE中有git图标enter image description here

通过单击此图标,您可以在两侧看到git差异

答案 1 :(得分:5)

这是查看自上次提交(当前分支)以来所做更改的简单方法:

  1. 单击VS Code左侧的Git图标
  2. 如果自上次提交以来对文件进行了更改,则会在“ CHANGES”下看到列出的文件
  3. 右键单击文件名(在“ CHANGES”下),然后单击“打开更改”
  4. 这将同时打开文件的两个版本,突出显示更改

Image showing example of VS Code displaying changes

答案 2 :(得分:3)

经过数小时的搜索,安装和卸载扩展,看来这已经在VSC中实现。

只需点击右上角的图标-“打开更改” enter image description here

点击右上方的图标-“打开文件”,返回到仅查看文件,而不查看更改

enter image description here

答案 3 :(得分:3)

现在可以切换内联视图(在3个点上)

答案 4 :(得分:2)

要获得VSCode中快速的单个文件差异视图而没有进一步的集成导航和编辑经验,您可以配置和使用/// <summary> /// Add an object child to this control /// </summary> protected virtual void AddChild(object value) { // if conent is the first child or being cleared, set directly if (Content == null || value == null) { Content = value; } else { throw new InvalidOperationException(SR.Get(SRID.ContentControlCannotHaveMultipleContent)); } } ,如其他答案所述-或更安全(和全局)是这样的:

Content

对于VSCode中的此类自定义差异的完全集成体验,请执行以下操作:

git difftool

现在,您可以像平常一样在VSCode中看到并使用此“自定义差异”-作为工作树与HEAD的差异:使用git SCM图标,双击/右键单击文件更改,切换内联差异视图等。

现在,您甚至可以直接在diff视图中直接在该工作树上工作。要提交此类更改,请执行以下操作:

git config --global difftool.vscode.cmd "code --wait --diff $LOCAL $REMOTE"
git config --global diff.tool vscode   # optionally as default

然后像往常一样合并新的母版,切换回功能分支,可能是选择my_master_fixup,重新设置基准或其他任何内容。

答案 5 :(得分:1)

您可以diff的任意两个文件,方法是:首先右键单击Explorer or OPEN EDITORS列表中的文件,然后选择“选择进行比较”,然后右键单击第二个文件进行比较,然后选择“与...进行比较” {1}}。

或者从键盘上按'file_name_you_chose',然后选择“文件:比较活动文件与...”,您将看到最近文件的列表。示例:

enter image description here

答案 6 :(得分:1)

如果要区分来自不同分支的更改。例如,您希望在功能分支中查看自上一次 N 次提交以来的所有更改。

  1. 通过在〜/ .gitconfig 文件中添加VSCode,将其设置为默认的difftool。
    [diff]
        tool = vscode
    [difftool "vscode"]
        cmd = code --wait --diff $LOCAL $REMOTE
  1. 转到您的git项目。输入: git difftool {{您要检查的分支}} ,例如 git difftool master

  2. 如果要以VSCode或否打开文件,系统将提示您输入每个文件。

答案 7 :(得分:1)

以VSCode打开文件~/.gitconfig

code  ~/.gitconfig

~/.gitconfig中复制以下行:

[diff]
    tool = default-difftool
[difftool "default-difftool"]
    cmd = code --wait --diff $LOCAL $REMOTE

保存更改。通过运行 Ctrl + Shift +`在VSCode中打开终端。在终端中运行以下命令:

git difftool master origin/master

答案 8 :(得分:0)

我已经回答了类似的问题here

但是基本上您可以使用以下命令:

git difftool -x "code --wait --diff" 

答案 9 :(得分:0)

您可以通过

在vscode上实现此目标
1.) opening up settings
2.) search for diff 
3.) the specific setting is **Diff Editor:Render** Side by Side mark the checkbox

答案 10 :(得分:0)

来自v1.48 release notes

在导航“源代码管理”视图时,在更改上按 Space 现在将其作为预览编辑器打开,并将焦点保留在Source中 控制视图,以便于键盘导航。

因此,您可以通过更改scm文件来 downarrow 并单击 Space 以打开差异视图。焦点仍保留在SCM视图中,因此您可以继续这样做。 / p>

答案 11 :(得分:0)

如果您想在两个任意引用之间进行比较 - 例如在分支和分支之间进行比较,或者在一个提交和另一个提交之间进行比较 - 并且仍然像我们看到索引更改一样轻松地一次查看所有文件。

  • 安装 GitLens 扩展程序
  • 转到左侧窗格中的源代码控制。 如果您没有该图标,则可以在菜单查看 -> SCM(显示源代码管理)下查看或使用定义的快捷方式。
  • 展开最后一部分搜索和比较
  • 点击按钮比较参考文献...
  • 选择参考文献,然后您将看到已更改文件的列表,单击一个文件将左右显示其更改。

Image showing the button