我使用的是Git Extensions版本[2.50.02 - 最新(当前)]。当我打开“合并分支”时,我看到复选框“不提交”被选中。
当我执行合并时,我看到所有更改都已提交(未推送到远程)。我期待这些更改不会被提交,所以我可以在推送到远程分支之前进行检查。
日志显示Git Extension执行以下命令
git merge branch --no-commit --no-ff
有没有人见过这个问题?如果有,是否有解决方法?
答案 0 :(得分:2)
--no-commit
选项的文档说明:
- commit, - no-commit
执行合并并提交结果。此选项可用于覆盖--no-commit。使用--no-commit执行合并但假装合并失败并且不自动提交,以便让用户有机会在提交之前检查并进一步调整合并结果。
未明确说明的内容是:已修改的文件已暂存(就好像所有文件都已被git add
编辑)。
但是,如果您在回购邮件上运行git status
,则可以很快看到这一点。
如果您想在真正提交之前查看差异,则必须在--cached
命令上使用git diff
opiton:
git diff --cached
git difftool --cached
git difftool -d --cached
gitk --cached
# etc ...
如果您的本地计算机上已经提交了更改,那么这不是我所期望的插件,它表明它已经运行git merge branch --no-commit --no-ff
。
我建议在此行之后的操作中查看日志文件,看看是否有任何机会触发提交,
如果你在那里看不到任何额外的动作,并且你不记得做过可能触发提交的事情,那么它可能是扩展中的一个错误。
无论如何,您的更改尚未发布(未推送),您仍然可以通过运行来查看差异:
git diff HEAD HEAD~1
如果你想摆脱那个提交,但保持修改为暂存,你也可以运行:
git reset --soft HEAD~1
如上所述,您可以使用以下方式查看差异:
git diff --cached