我如何在VSCode中提交一些更改到文件,而不是其他人?

VSCode有优秀的git集成,但我找不到一种方法来做部分提交。基本上,我希望能够在我的文件中选择特定的更改,并在不登台的情况下登台整个文件。git CLI、Github原生应用程序和Atom插件支持此功能。

主要是在开票之前确保我没有错过什么。

94379 次浏览
  • 打开Source Control视图,然后单击已更改的文件以打开比较。

  • 选择要演出的台词。

  • 点击“…`然后Stage Selected Ranges

enter image description here

此选项已移动到调色板:

shift+command+P输入“stage selected ranges”

更新:2017年10月:在2017年10月的最新VSCode(版本1.18)中,你可以很容易地展示特定的行,就像你用git CLI git add -p做的那样。你只需要从侧面点击编辑过的行,观察差异,然后应用它。

查看未决的更改并在编辑器中执行部分提交

⚡用动图总结这篇文章中的所有内容。

  1. 确保您在源代码控制视图中使用此特性
  2. 选择代码范围
  3. 在编辑器的右上角打开···(而不是左侧git面板顶部的···)
  4. 您也可以按命令(⌘) + K + 命令(⌘) + 年代打开键盘快捷键并搜索range,然后为该操作设置键盘快捷键。

VSCode Range Select Commit

和平!✌️

使用交互式登台。

命令- git add -p < 这将显示文件,您可以选择在分隔更改

后提交哪个文件

最初,我概述了可用的方法,但我认为这一点应该放在最上面,因为它是最有用的:

我想出了让它更快的办法

可以看到,“Git: Stage Selected ranges”;由命令面板(ctrl + shift + P)显示的主编辑器具有相同的热键,在&;界面,但它实际上不起作用。有一段时间,我认为这是一个错误,但它原来是一个可配置的行为:点击设置按钮:

enter image description here

(或者直接去ctrl + K ctrl + S/file→preferences→键盘快捷键搜索@command:git.stageSelectedRanges)

...你会看到默认的“何时”;表达式是isInDiffEditor,所以它不应该在正常的编辑器中工作。所以,change当表达式为空时:

enter image description here

或者保留默认的热键组合并在编辑器中使用它(这就是我所做的),或者将它设置为更短的内容(不是双重组合,我也会考虑这个)。利润!

如果有什么不清楚或者你想知道其他的选择,这里

可用方法的初步概述

  • 基本方法是在审查变化的接口中Stage Selected Ranges:

    enter image description here

    1. 开源控制(ctrl + shift + G)
    2. 选择文件
    3. 选择应暂存的行(或将游标放在单行或删除位前后的行上)
    4. 打开";菜单,选择“Stage Selected ranges”;
  • 另一方面,你可以使用热键。默认值(在v1.56.2中)是ctrl + Kctrl + alt + S。要设置自定义键组合,打开键盘快捷键(从文件→首选项或通过ctrl + K然后ctrl + S)并找到stageSelectedRanges(可能是unstageSelectedRangesrevertSelectedRanges)

  • 不幸的是,热键上面提到的工作只在&;审查更改&;接口,你可能想要做这个直接在代码编辑器中。您可以通过另一个界面来完成此操作:单击更改标签:

    enter image description here

    然后是“换舞台”;按钮:

    enter image description here

  • 尽管没有直接的热键到所选范围来自代码编辑器,你可以去ctrl + shift + P(打开命令面板),然后键入"stage "然后选择“Git: Stage Selected ranges”:

    enter image description here

同样,当你检查要执行的内容时,使用Alt + F5跳转到文件中的下一个更改也很方便。