你不应该。或者,你应该。这并不是真正的Git问题。
如果您的编辑器有一个--wait
标志,则该标志的含义--wait
取决于您的编辑器。
在这种情况下,您的特定编辑器具有某种“功能”:
运行为code
,它会生成一个新的编辑器窗口并立即返回到调用程序。调用程序重新获得对现有窗口的控制。编辑器可能还没有打开新窗口。
然而,运行 as 时code --wait
,它会生成一个新的编辑器窗口,然后等待。它等待新的编辑器窗口发出信号,表明正在使用该编辑器窗口编辑某些文件的用户已完成文件的编辑。 然后,也只有到那时,它才会将控制权返回给调用程序。
当调用程序是您自己的 shell 并在其中键入命令时,默认设置(“不等待”)允许您键入更多命令,这很好。但是,例如,当调用程序时git commit
,调用程序会假定提交消息现在就是您想要的内容,因为 Git 认为编辑器在文件写出之前不会返回。
Git 设计的编辑器,例如vim
和 (旧版本)emacs
,在您完成文件编辑之前不会返回。因此 Git 假设所有编辑器都这样做。如果您的编辑也这样做,那就太好了!Git 的假设成立,我们就完成了。
如果您首选的编辑器不这样做,我们就有问题了。我们需要的东西:
git commit
或git rebase --interactive
。如果该程序是code --wait
,那就太好了!我们完成了。如果没有,请查找它是什么程序。将其设置为您的core.editor
设置。