127

我想知道如何git diff master origin/master在 Visual Studio Code 的终端中使用命令查看文件。

git fetch从我的远程存储库中做了一个,现在我想查看差异,但是使用命令只是在终端中显示我。

我想要的示例:

Visual Studio Code 中差异查看器的屏幕截图

4

13 回答 13

169

在 Visual Studio Code 的左侧,有一个如下所示的 Git 图标:

通过单击此图标,然后双击“更改”下列出的文件之一,您可以看到 Git 在两侧的差异。

于 2018-07-13T04:07:31.123 回答
58

如果你想查看不同分支的差异变化还有一些额外的工作。例如,您想查看Feature 分支中最后N次提交的所有更改。

  1. 通过将其添加到~/.gitconfig文件中,将 Visual Studio Code 设置为默认的 difftool 。

    [diff]
        tool = vscode
    [difftool "vscode"]
        cmd = code --wait --diff $LOCAL $REMOTE
    
  2. 转到您的 Git 项目。输入:

    git difftool {{您要检查的分支}},例如git difftool master

  3. 如果您想在 Visual Studio Code 中打开它,系统将提示您输入每个文件。

于 2019-05-21T11:38:36.973 回答
20

您可以通过以下方式在 Visual Studio Code 中实现此目的

  1. 打开设置(在窗口/linux文件>首选项>设置。在macOS代码>首选项>设置)
  2. 搜索差异
  3. 具体设置为Diff Editor:Render Side by Side。标记复选框。
于 2019-12-19T19:56:02.127 回答
13

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

只需点击右上角的图标 - “打开更改” 在此处输入图像描述

并返回仅查看文件,而不是更改,方法是单击...右上角的图标 - “打开文件”

在此处输入图像描述

于 2020-04-03T14:41:50.473 回答
8

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

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

显示更改的 VS Code 示例的图像

于 2020-02-06T12:40:00.477 回答
7

~/.gitconfig在 Visual Studio Code 中打开文件:

code  ~/.gitconfig

复制以下行~/.gitconfig

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

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

git difftool master origin/master
于 2019-11-05T13:50:06.270 回答
6

您可以diff通过首先右键单击EXPLOREROPEN EDITORS列表中的文件并选择Select for Compare然后右键单击要比较的第二个文件并选择Compare with <file_name_you_chose>来选择任何两个文件。

或者,从键盘点击Ctrl+ Shift+P并选择菜单文件将活动文件与...比较,您将看到最近文件的列表。例子:

在此处输入图像描述

于 2018-07-13T04:08:01.633 回答
6

我在这里回答了一个类似的问题。

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

git difftool -x "code --wait --diff"
于 2019-11-21T20:21:32.213 回答
6

If you want to compare between two arbitrary references - for example comparing between branch and branch, or a commit and another commit - and still view all files in one shot easily just like we see the index changes.

  • Install the GitLens extension
  • Go to the Source control in the left pane. If you don't have the icon then you can look under menu View -> SCM (Show source control) or use the defined shortcut.
  • Expand the last section Search & Compare
  • Click on button Compare References...
  • 选择参考,然后您将看到已更改文件的列表,单击一个文件将并排显示其更改。

显示按钮的图像

于 2021-08-10T11:16:53.140 回答
5

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

于 2020-08-09T15:22:51.873 回答
3

Vscode 本身能够显示任何两个文件之间的差异:

code --diff file1.txt file2.txt

我相信这与git diff功能无关。

于 2021-11-02T02:47:50.327 回答
1

对于 VSCode 中的快速单个文件差异视图,无需进一步集成导航和编辑体验,您可以配置和使用git difftool其他答案所解释的 - 或更安全(和全局),如下所示:

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

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

# possibly commit or stash a dirty work tree before switching
git switch origin/master --detach  # new master in worktree
git reset master                   # old master as detached HEAD (diff base)

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

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

git reset origin/master    # base for added changes only
# review the bare added delta again (in VSCode)
git add/commit ...
git branch/tag my_master_fixup   # name it

Then merge the new master as usual, switch back to feature branch, possibly cherry-pick the my_master_fixup, rebase or whatever ..

于 2020-11-15T12:16:14.390 回答
0

v1.48 发行说明

当您浏览 Source Control 视图时,按下Space更改现在会将其作为预览编辑器打开,并将焦点保持在 Source Control 视图中,以便于键盘导航。

因此,您可以downarrow通过您的 scm 文件更改并点击Space打开差异视图。焦点仍保留在 SCM 视图中,因此您可以继续执行此操作。

于 2020-08-09T16:21:15.200 回答