如何在VSCode中对文件进行某些更改,但不能对其他文件进行更改?


139

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

通常,要确保我在开票之前不会错过任何东西。

Answers:


212
  • 打开“源代码管理”视图,然后单击更改的文件以打开比较。

  • 选择要暂存的行。

  • 点击“ ...”,然后点击Stage Selected Ranges

在此处输入图片说明


45
以防万一有人像我一样感到困惑:此屏幕截图指向···的是编辑器的右上角,而不是···左侧的git面板的顶部。
waldyrious

4
如果这返回一个错误“ Git:非法值line ”,则该错误在GitHub上已报道过两次,但仍未解决。在这种情况下,只需切换“内联视图”即可。来源
Marc.2377 '18

2
如@Dimitris所提到的,该命令也位于命令面板中,因此您不必位于“源代码管理”视图中。
eatcrayons 18/12/5

2
请注意,这会分段整行,如果您要分段一行,我想它又回到了get add -i交互式编辑……
Zarepheth

97

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

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

VSCode范围选择提交

和平!✌️


很难选择已删除的行
duXing

45

更新:201710月:截至201710月的最新VSCode(1.18版)中,您实际上可以非常容易地暂存特定行,就像使用git CLI一样git add -p。您只需要从侧面单击编辑的行,观看差异即可,也可以不应用它。

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


5
不过有两件事丢失了……您不能拆分大块,也不能手动编辑大块... :(
Robert Koritnik

12

此选项已移至选项板:

Shift + Command + P并输入“阶段选定范围”


在vim模式下似乎不起作用。
baxx

@baxx为什么会这样?
tejasvi88

@ tejasvi88为什么不呢?
baxx
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.