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

Ric*_*rez 13 git git-diff git-fetch git-difftool visual-studio-code

大家好,我的问题是关于git diff,我想知道如何git diff master origin/master在VSCODE终端上的命令中以文件形式查看,我git fetch从远程存储库中执行了一个操作,现在我想查看差异,但命令仅显示我在航站楼。我正在努力得到这样的东西...

我想要的例子:

在此处输入图片说明

eha*_*hab 27

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

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

显示按钮的图像


Rat*_*mar 19

在左侧的VSCODE中,有一个git图标,看起来像这样:

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

  • 这不应该是公认的答案,因为它仅显示尚未提交的更改 (17认同)
  • 您的答案不适用于任何差异。这只适用于显示当前更改与最新提交的差异。 (6认同)
  • 为了完整起见,由于不是每个人都显示图标,因此请在菜单视图-> SCM(显示源控件)`ctrl-shift-G`下查看 (4认同)
  • [图标已更新](https://raw.githubusercontent.com/microsoft/vscode-icons/master/icons/light/source-control.svg) (3认同)

lbo*_*yel 12

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

  1. 打开设置(在window/linux File > Preferences > Setting。在macOS Code > Preferences > Settings)
  2. 搜索差异
  3. 具体设置为Diff Editor:Render Side by Side。标记复选框。


小智 8

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

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

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


rio*_*rio 8

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


adr*_*ntu 7

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

只需单击右上角的图标 - “打开更改” 在此处输入图片说明

然后通过单击...右上角的图标 - “打开文件”返回仅查看文件,而不查看更改

在此处输入图片说明

  • 如何在一个选项卡中打开所有已更改的文件 (4认同)

Von*_*onC 7

请注意,并排比较并不总是最好的选择。

考虑microsoft/vscode问题 123111:允许条件并排或内联 diffEditor。

我喜欢并排差异。我对内联差异也很满意。
我不喜欢的是发现自己在狭窄的编辑器窗口中查看并排的差异:

https://user-images.githubusercontent.com/10780590/117291544-8575d300-ae45-11eb-80d2-d1c24ed7f844.png

此问题已由PR 189304和 VSCode 1.82(2023 年 8 月)的一部分解决

动态布局

如果 diff 编辑器的宽度太小,编辑器会自动切换到内联视图。
如果编辑器再次足够宽,则恢复之前的布局。

设置“diffEditor.useInlineViewWhenSpaceIsLimited": false以禁用此行为。

https://user-images.githubusercontent.com/2931520/256586308-53abf2c2-1131-4d87-9e3b-38df789e2639.png -- 内联差异

  • `diffEditor.useInlineViewWhenSpaceIsLimited": false` 帮助了我! (2认同)
  • 这是新更新后发生的情况。现在我可以查看并排文件中的更改。多谢 :) (2认同)

Abd*_*lah 6

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

code  ~/.gitconfig
Run Code Online (Sandbox Code Playgroud)

复制以下几行~/.gitconfig

[diff]
    tool = default-difftool
[difftool "default-difftool"]
    cmd = code --wait --diff $LOCAL $REMOTE
Run Code Online (Sandbox Code Playgroud)

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

git difftool master origin/master
Run Code Online (Sandbox Code Playgroud)


Бон*_*ков 5

If you want to diff changes from different branches. For example you want to see all the changes from last N commits in your Feature branch.

  1. Set up VSCode to be your default difftool by adding this in your ~/.gitconfig file.
    [diff]
        tool = vscode
    [difftool "vscode"]
        cmd = code --wait --diff $LOCAL $REMOTE
Run Code Online (Sandbox Code Playgroud)
  1. Go to your git project. Type in: git difftool {{branch you want to check with}}, for exmaple git difftool master

  2. You will be prompted for each file, if you want to open it in VSCode or no.

  • 有没有一种方法可以让我们在 Visual Studio 代码中看到要比较的所有文件的列表,而不是逐个打开(就像我们通过单击 Visual Studio 左侧面板上的 git 图标看到的那样)? (8认同)
  • @Sathya一旦完成了 Boncho git difftool --dir-diff 共享的设置就可以完成工作,或者您可以在配置文件中使用 alias [alias] df = difftool --dir-diff (3认同)
  • 相关 VS Code 文档:https://code.visualstudio.com/docs/editor/versioncontrol#_vs-code-as-git-diff-tool (2认同)
  • 还有一个很好的可视化代码插件“git-tree-compare”,可以显示您对特定参考分支的差异更改。请参阅:https://marketplace.visualstudio.com/items?itemName=letmaik.git-tree-compare (2认同)

Gom*_*ino 5

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

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

git difftool -x "code --wait --diff"
Run Code Online (Sandbox Code Playgroud)