如何在VSCode中对文件进行一些更改而不对其他文件进行更改?

Ray*_*yne 102 visual-studio-code

VSCode具有出色的git集成,但我找不到部分提交的方法.基本上,我希望能够在我的文件中选择特定的更改并在不暂存整个文件的情况下进行分级.git CLI,Github本机应用程序和Atom插件支持此功能.

大多数情况下,确保我在打开机票之前不会错过任何东西.

Ben*_*ero 149

  • 打开"源代码管理"视图,然后单击已更改的文件以打开比较.

  • 选择要分段的行.

  • 点击"..."然后Stage Selected Ranges.

在此输入图像描述

  • 以防其他人像我一样感到困惑:这个截图指的是编辑器右上角的`···`,而不是左侧git面板顶部的`···`. (31认同)
  • 如果这返回错误"*Git:`line`*的非法值",这已在GitHub上报告了几次,但仍未修复.在这种情况下,只需切换"内联视图",它就会起作用.[来源](https://github.com/Microsoft/vscode/issues/35705#issuecomment-343638025) (4认同)
  • 这不起作用,单击“阶段选定范围”时没有任何反应。 (4认同)
  • 正如@Dimitris 所提到的,这个命令也在命令面板中,所以你不需要在源代码控制视图中。 (2认同)
  • 请注意,这会暂存整行,如果您想暂存一行的部分内容,我想它会回到“get add -i”和交互式编辑...... (2认同)

Ahm*_*ais 58

⚡用gif总结这篇文章中的所有内容.

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

VSCode范围选择提交

和平!✌️

  • @duXing 要选择“已删除”行,请尝试突出显示代表这些已删除行的空阴影间隙,并确保在选择中包含间隙之前和之后的行。这应该允许**暂存选定范围**暂存已删除的内容。 (11认同)
  • 很难选择已删除的行 (2认同)

Kon*_*nis 33

更新:201710月:201710月的最新VSCode(版本1.18)中,您实际上可以非常轻松地使用git CLI执行特定的行git add -p.你只需要从侧面点击编辑过的线条,观看差异并应用或不应用.

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

  • 虽然有两件事丢失了......你不能分开帅哥,你不能手动编辑帅哥...... :( (4认同)

小智 7

此选项已移至调色板:

shift + command + P并输入"stage selected range"


Yak*_*ovL 5

这个问题很老了,但是我没有看到任何提到热键的内容,所以让我总结一下各种方法:

  • 基本方法是在界面中 Stage Selected Ranges 以查看更改

    在此处输入图片说明

    1. 开源控制 ( ctrl + shift + G)
    2. 选择文件
    3. 选择应暂存的行(或将光标放在已删除位之前和之后的一行或几行)
    4. 打开“...”菜单并选择“Stage Selected Ranges”
  • 另一方面,您可以使用hotkeys。默认的(在 v1.56.2 中)是ctrl + K然后ctrl + alt + S。要设置自定义组合键,请打开键盘快捷键(从 File ? Preferences 或通过ctrl + Kthen ctrl + S)并找到stageSelectedRanges(可能是unstageSelectedRanges, revertSelectedRanges

  • 不幸的是,上面提到的热键只能在“查看更改”界面中使用,您可能希望直接在代码编辑器中执行此操作。您可以通过另一个界面执行此操作:单击更改标签:

    在此处输入图片说明

    然后是“舞台变化”按钮:

    在此处输入图片说明

  • 尽管没有直接的热键从代码编辑器暂存选定范围,但您可以去ctrl + shift + P(打开命令面板)然后键入“stage s”并选择“Git:暂存选定范围”:

    在此处输入图片说明

此外,Alt + F5当您查看要暂存的内容时,使用它可以方便地跳转到文件中的下一个更改。

PS 如您所见,Command Palette 显示的“Git: Stage Selected Ranges”具有与“review changes”界面中相同的热键。可能是因为它在编辑器中不起作用是一个错误。请评论它是否适合您以及您的 VS Code 版本是什么。

  • 这在 Intellij 中只需单击一下,就工作流程而言,也许值得购买 IDE。 (6认同)