【发布时间】:2018-12-21 07:26:36
【问题描述】:
我想知道如何在 Visual Studio Code 的终端中使用命令 git diff master origin/master 将文件视为文件。
我从远程存储库中执行了git fetch,现在我想查看差异,但使用命令只是在终端中显示。
我想要的示例:
【问题讨论】:
标签: git visual-studio-code git-diff git-difftool
我想知道如何在 Visual Studio Code 的终端中使用命令 git diff master origin/master 将文件视为文件。
我从远程存储库中执行了git fetch,现在我想查看差异,但使用命令只是在终端中显示。
我想要的示例:
【问题讨论】:
标签: git visual-studio-code git-diff git-difftool
在 Visual Studio Code 的左侧,有一个如下所示的 Git 图标:
通过单击此图标,然后双击 Changes 下列出的文件之一,您可以看到两个方面的 Git 差异。
【讨论】:
ctrl-shift-G
⌘K V 打开预览,如VSCode keybindings 中所述。
【讨论】:
如果您想查看不同分支的差异变化,还有一些额外的工作。例如,您希望在 Feature 分支 中查看上次 N 次提交的所有更改。
通过将 Visual Studio Code 添加到您的 ~/.gitconfig 文件中,将其设置为您的默认差异工具。
[diff]
tool = vscode
[difftool "vscode"]
cmd = code --wait --diff $LOCAL $REMOTE
转到您的 Git 项目。输入:
git difftool {{您要检查的分支}},例如 git difftool master
系统会提示您输入每个文件,是否要在 Visual Studio Code 中打开它。
【讨论】:
code --diff file1.txt file2.txt
在 Visual Studio Code 中打开文件 ~/.gitconfig:
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
【讨论】:
nano 这样的编辑器中打开文件 ~/.gitconfig:" - 为什么不直接在 VS Code 中打开它呢?那么只需要一个编辑器
【讨论】:
您可以通过以下方式在 Visual Studio Code 中实现此目的
【讨论】:
CTRL+P,然后按>,然后输入Settings,菜单会向下滚动,我会寻找 UI 菜单选项。
CTRL+,
现在可以切换内联视图(在 3 个点上)
【讨论】:
当您浏览源代码控制视图时,按 Space 进行更改 现在将其作为预览编辑器打开并保持焦点在 Source 控制视图,便于键盘导航。
因此,您可以通过 scm 文件更改向下箭头 并点击 Space 以打开差异视图。焦点仍然在 SCM 视图中,因此您可以继续执行此操作。
【讨论】:
对于 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
然后像往常一样合并新的 master,切换回功能分支,可能会挑选 my_master_fixup、rebase 或其他任何东西..
【讨论】:
如果您想在两个任意引用之间进行比较——例如比较分支和分支之间,或者一个提交和另一个提交之间的比较——并且仍然可以轻松地一次查看所有文件,就像我们看到索引更改一样。
【讨论】:
code --diff file1.txt file2.txt
我相信这与git diff 功能无关。
【讨论】: