在 git 中选择默认编辑器时为什么要使用“--wait”?

0 git shell terminal editor wait

我知道等待标志将使编辑器保持打开状态,直到我们关闭应用程序。

为什么这有用或重要?如果我不应用该标志会发生什么?等待标志在 git 中还有其他有用的情况吗?

等待标志的示例:git config --global core.editor "code --wait"

tor*_*rek 5

你不应该。或者,你应该。这并不是真正的Git问题。

如果您的编辑器一个--wait标志,则该标志的含义--wait取决于您的编辑器

在这种情况下,您的特定编辑器具有某种“功能”:

  • 运行为code,它会生成一个新的编辑器窗口并立即返回到调用程序。调用程序重新获得对现有窗口的控制。编辑器可能还没有打开新窗口。

  • 然而,运行 as 时code --wait,它会生成一个新的编辑器窗口,然后等待。它等待新的编辑器窗口发出信号,表明正在使用该编辑器窗口编辑某些文件的用户已完成文件的编辑然后,也只有到那时,它才会将控制权返回给调用程序。

当调用程序是您自己的 shell 并在其中键入命令时,默认设置(“不等待”)允许您键入更多命令,这很好。但是,例如,当调用程序时git commit,调用程序会假定提交消息现在就是您想要的内容,因为 Git 认为编辑器在文件写出之前不会返回。

Git 设计的编辑器,例如vim和 (旧版本)emacs,在您完成文件编辑之前不会返回。因此 Git 假设所有编辑器都这样做。如果您的编辑也这样做,那就太好了!Git 的假设成立,我们就完成了。

如果您首选的编辑器这样做,我们就有问题了。我们需要的东西:

  • 调用您首选的编辑器,然后
  • 等到编辑器发出您已完成编辑的信号,然后
  • 将控制权返回给git commitgit rebase --interactive

如果该程序是code --wait,那就太好了!我们完成了。如果没有,请查找它是什么程序。将其设置为您的core.editor设置。