【问题标题】:Git no longer waits on Notepad++ to finish with a file before continuingGit 在继续之前不再等待 Notepad++ 完成文件
【发布时间】:2020-08-21 19:57:30
【问题描述】:

在我的 Windows 10 机器上,我为打开 git-bash 配置的编辑器是 Notepad++。如果当我运行任何需要打开编辑器的 git 命令(来自 Windows 上的 git-bash)时 notepad++ 已打开,git 会在现有 Notepad++ 实例中打开临时文件,但 git 不会等待。曾经,我想。发生了什么?结果是它继续使用它打开的文件中的任何默认内容。在git rebase -i <commit-spec> 的情况下,由于指定哪个提交到 squash 的内容从未更改过,因此不会造成任何伤害。在git commit 的情况下,由于没有评论被输入,提交被取消。如果您尝试编辑文件并保存它,您会收到一条无法保存的消息。 (这是因为git在读回默认内容并处理后已经删除了文件。)是否有配置设置告诉git使用Notepad++的新实例?

【问题讨论】:

  • 听起来像是记事本++的问题。 Git 将等待它调用的进程放弃控制(通常,当它结束时)......如果进程正在分离,git 无能为力。
  • 如果有更多的 kate 运行实例,我也会遇到 kate 的情况。也许这就是问题所在?
  • 所以我需要一些方法来告诉 Notepad++ 启动一个新实例,这可能是插入到我的 gitconfig 中的命令行参数。是时候在 Notepad++ 文档中进行更多搜索了,除非其他人知道这一点。
  • 我想我找到了 Notepad++ 命令行选项: -multiInst:启动另一个 Notepad++ 实例,因此用户可以同时拥有多个 Notepad++。我正在 .gitconfig [core] editor = 'C:/Program Files/Notepad++/notepad++.exe -multiInst ' 中尝试这个

标签: git notepad++ git-bash


【解决方案1】:

这是我发现的有效方法:

编辑您的全局 .gitconfig 文件,在 [core] 部分中,确保 editor 关键字如下所示:

editor = 'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin

这里的重点是我们想要一个新的实例(-multiInst),因为我们不想被诱惑在这个 Notepad++ 实例中打开其他东西,我们也禁止显示一个标签栏(-notabbar),防止它从以前的会话中打开任何文件(-noSession),并且不打扰加载插件(-noPlugin)。

还要注意,它出现在 = 之后的所有内容都将被使用,因此引号仅围绕 exe,不包括选项。您正试图告诉 shell 您的 exe 的路径是什么,并且由于其中有一个空格,因此您需要引号(或撇号)。

希望这可以帮助遇到同样问题的其他人。

【讨论】:

  • "这里的重点是我们想要一个新实例 (-multiInst)," 如果我​​不这样做怎么办?我想要一个实例
【解决方案2】:

将此命令用于Windows

git config --global core.editor "'C:\Program Files\Notepad++\notepad++.exe' -nosession -notabbar"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    相关资源
    最近更新 更多