Git 扩展 'Do not commit' 不工作

Git Extensions 'Do not commit' not working

我正在使用 Git 扩展版本 [2.50.02 - 最新(当前)]。当我打开 "Merge branches" 时,我看到复选框“不提交”被选中。

当我执行合并时,我看到所有更改都已提交(未推送到远程)。我原以为这些更改不会被提交,所以我可以在推送到远程分支之前进行审查。

日志显示 Git 扩展程序执行以下命令

git merge branch --no-commit --no-ff

有人见过这个问题吗?如果是,是否有变通办法?

--no-commit 选项的文档指出:

--commit, --no-commit
Perform the merge and commit the result. This option can be used to override --no-commit.

With --no-commit perform the merge but pretend the merge failed and do not autocommit, to give the user a chance to inspect and further tweak the merge result before committing.

它没有明确说明的是:修改后的文件已暂存(好像所有文件都已 git added)。
但是,如果您 运行 a git status 在您的回购中,您可以很快看到这一点。

如果您想在真正提交之前查看差异,您将必须在 git diff 上使用 --cached 选项,例如命令:

git diff --cached
git difftool --cached
git difftool -d --cached
gitk --cached
# etc ...

如果更改已经在您的本地计算机上提交,这不是我对插件的预期,它声明它具有 运行 git merge branch --no-commit --no-ff.

我建议查看日志文件中此行之后的操作,看看是否有机会触发提交,
如果您在那里没有看到额外的操作,并且您不记得曾经做过可能触发提交的操作,则可能是扩展中的错误。

无论如何,您的更改尚未发布(未推送),您仍然可以通过 运行ning 查看差异:

git diff HEAD HEAD~1

如果你想摆脱那个提交,但保持修改的阶段性,你也可以 运行 :

git reset --soft HEAD~1

如上所述,您可以使用以下命令查看差异:

git diff --cached