【问题标题】:Why does msysgit sometimes try to open the (non-existent) file "$@"?为什么 msysgit 有时会尝试打开(不存在的)文件“$@”?
【发布时间】:2010-12-01 05:41:40
【问题描述】:

我在 Windows 上使用 msysgit,偶尔,当它应该打开我的编辑器以允许我编辑提交消息或其他内容时,它会尝试打开一个名为 $@ 的文件。该文件不存在,所以 Notepad++ 说“文件 '$@' 不存在;您要创建它吗?”

我的 .git/config 看起来像:

[core]
    editor = C:/Program\\ Files/notepad++/notepad++.exe

【问题讨论】:

  • 哈哈,我在问题标题中看到git"$@"?,并认为这是一个咒骂:)
  • 看起来像是变量扩展的问题,但考虑了一两分钟后,我想不出它到底哪里出错了。可能是 Git 认为程序正在执行变量扩展(就像 Windows 程序那样)并且程序希望 shell 已经完成了它。但是,考虑到 Notepad++ 是一个常规的 Windows 程序,这并没有多大意义。

标签: git msysgit


【解决方案1】:

我也有同样的问题。 我试图以不同的方式编写这个字符串。终于找到合适的变种了。

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

必须显示单引号。 我不知道为什么或如何,但它有效(就我而言)。 可能有人会解释这种行为的原因。 我希望此评论对您有所帮助。

【讨论】:

    【解决方案2】:

    我还没有找到发生这种情况的确切原因,但是在msysgit Google group 中搜索让我得出结论,它似乎与“程序文件”中的空间有关。似乎解决问题的方法是将C:\Program Files\Notepad++ 添加到PATH 环境变量中,然后将git config 切换为notepad++。不过,我仍然想知道为什么这不起作用,以及为什么这个解决方案显然可以解决它。

    【讨论】:

    • 您可以创建一个运行 Notepad++ 的 shell 脚本或批处理脚本,然后从 Git 配置中调用它。由于各种扩展和逃逸问题,我不得不在 msys 上执行此操作。 Git 似乎比 msys bash 更挑剔,唉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 2022-08-07
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    相关资源
    最近更新 更多