为什么我不能使用 VS Code 直接编辑 git 索引中的分阶段更改?

ber*_*ers 14 git visual-studio-code

我正在使用 VS Code,当我在提交之前(通常在只读“(索引)”编辑器中)发现分阶段更改中的拼写错误时,我总是很恼火。因为解决它涉及打开原始文件,找到相同的位置,进行更改,保存文件,现在打开文件的差异,暂存此更改(而不是其他更改),然后完成提交。这对我来说似乎没有必要复杂。

我只想对索引进行编辑 - VS Code 等智能编辑器应该能够在后台执行必要的操作。但它不会让我,因为编辑器是只读的,而且我“无法在只读编辑器中编辑”

有一个关于此问题的 GitHub 问题#91065(以及#91274#74149#15785#33681),称其“按设计”工作。但解释并没有真正向我解释:

差异的标题说(Index)- 这意味着您已经分阶段进行了更改,并且您正在将分阶段的更改与头部修订版进行比较。

正确,但这并不能解释为什么 VS Code 不能进行进一步的更改。

这与工作文件不同,因为您可以选择性地暂存文件的某些部分,因此暂存版本可能看起来与工作文件不同

再次强调:正确,但这并不能解释为什么 VS Code 不应该首先经历编辑“工作文件”的麻烦而无法进行进一步的更改。

您无法编辑右侧,因为更改是暂存的

这对我来说不是一个解释。

您需要编辑工作文件并暂存这些更改,或者取消暂存并编辑文件

最后,我再次不明白为什么 VS Code 不能为我做到这一点。

但也许我忽略了一些事情。所以我的问题是,

为什么我不能直接进行阶段更改?VS Code 应该可以吗?

jth*_*ill 1

这里唯一的答案是,找到一个与为 vim (fugitive) 或 emacs (magit) 编写的插件一样好的 VS Code 插件。这两者都将索引视为不同文件系统上的另一个目录。我不知道magit,但fugitive可以让你:path/to/file直接编辑,并且你可以从中或从任意转速中获取差异块,基本上这就是and和:Gdiff的强大工具版本。如果事实证明法师不能做到这一点,我会感到震惊。add --patchreset --patchcheckout --patch