【发布时间】:2012-07-29 18:50:47
【问题描述】:
我整天都在努力让 git 在 Windows 7 x86 上的 emacs shell(版本 24)中工作。 (*) 罪魁祸首其实是 ssh,它是行不通的。例如,输入:
ssh -T git@github.com
将永远挂起,无论 emacs 中使用的 shell 类型(emacs shell(又名 eshell)或 msys bash)。在 emacs 之外,它工作得很好(在 bash 或 cmd.exe 中)。
注意-T 参数,它说“不要分配伪tty”(emacs 不能分配伪tty,至少在Windows 上不能)。所以这不是问题。
我尝试过使用 MSYS(不是 msys-git)或“Git for Windows”中的 ssh.exe。谨防! “Windows 版 Git”与“Windows 版 Github”不同。 "Git for Windows" 是二进制文件和支持实用程序的安装程序,通过在 msys-git 下构建 git(专门为此目的而存在的开发环境)获得。出于这个原因,它“Git for Windows”经常被错误地称为 msys-git。
输入“Github for Windows”。使用他们的 git/ssh 版本,我可以在 emacs shell 下使用 git 和 ssh。据我所知,该程序只是简单地使用了“Git for Windows”。但是,它是一个修改版本。例如,添加了一个etc/ssh/ssh_config 文件。
我已经确定etc/ssh/ssh_config 中的一些配置是 ssh 在 emacs 中工作的原始配置。然而,仅凭这一点并不能解释它为什么起作用,因为将这个配置文件与“Git for Windows”一起使用并不能解决问题。
所以我想知道 Github 团队对“Git for Windows”做了哪些其他更改,以使其在 emacs 中工作。
我什至不确定“在 emacs 中工作”是否是预期目标。这就是为什么这个问题的答案很重要:如果“Github for Windows”的未来版本破坏了 emacs 兼容性,我将无法再在 emacs shell 中使用 git。
(*) 是的,我对 vc-git、magit、tramp 等一无所知。我不感兴趣。
【问题讨论】:
标签: git emacs ssh github msysgit