这个问题在所有扩展都被禁用时是否发生?:是的
- VS Code 版本:1.75.1(用户设置)
- OS 版本:Windows_NT x64 10.0.22621
重现步骤:
- 在 git 仓库上打开 vscode。
- 进行一些更改,但不要暂存任何内容。
- 在 SCM 视图中,在输入字段中编写提交信息,然后从“...”图标的上下文菜单中选择“Commit > Commit Staged All (Amend)”。
预期的行为是更新上一次提交的消息。
实际发生的情况是什么都没有发生。上一次提交的消息没有更新,git 输出选项卡中也没有显示任何命令。
请注意,当有暂存的更改或完全没有更改时,无论是已暂存还是未暂存的更改,“Commit > Commit Staged (Amend)”都会按预期更新消息。只有在有更改但没有暂存更改的情况下它才什么也不做。
此问题先前在 #120639 中被跟踪。该问题已关闭并锁定,但问题并未完全解决。现在“Commit > Commit All (Amend)”可以正常工作,但“Commit > Commit Staged All (Amend)”仍然无法正常工作。
4条答案
按热度按时间9vw9lbht1#
@lszomoru(因为你在照顾#120693,所以我给你发了一条消息)
1cklez4t2#
@Maxpxt,对于没有及时回复你表示歉意。虽然我认为这是有意为之的设计,但我们应该显示一条信息消息,而不是默默失败。我的理解是,所有名称中带有"Staged"的命令都对处于"Staged Changes"资源组中的资源进行操作。由于在上面的场景中没有暂存资源,所以命令会退出。
包括@joaomoreno在内,如果有误请纠正我。
kxkpmulp3#
我认为我们没有
Commit Staged All (Amend)
命令,只有Commit All (Amend)
和Commit Staged (Amend)
。@Maxpxt,你指的是哪一个?8i9zcol24#
@joaomoreno 是的,那是一个拼写错误,抱歉。我的意思是
Commit Staged (Amend)
@lszomoru
我的理解是,所有名称中带有 "Staged" 的命令都对位于 "Staged Changes" 资源组中的资源进行操作。由于在上面的场景中没有暂存资源,命令会退出。
然而,是的,
Commit Staged (Amend)
目前不会在没有任何更改(既没有暂存也没有工作树中的更改)的情况下退出,并且可以正确地修改提交信息。此外,根据当前行为,如果工作树中有更改,修改提交信息的唯一方法是丢弃或暂存这些更改。