如何解决 Git Portable 的文件访问问题?

Posted

技术标签:

【中文标题】如何解决 Git Portable 的文件访问问题?【英文标题】:How do I fix file access problems with Git Portable? 【发布时间】:2022-01-22 20:58:21 【问题描述】:

我在 windows 上使用最新版本的 git 便携版。我使用 ssh 密钥配置了对我的 github 存储库的访问。一切正常。唯一的问题是我每次推送或拉取时都会收到以下错误消息:

hostfile_replace_entries: link /.ssh/known_hosts to /.ssh/known_hosts.old: Operation not permitted
update_known_hosts: hostfile_replace_entries failed for /.ssh/known_hosts: Operation not permitted

我不知道这是从哪里来的,也不知道如何解决。

【问题讨论】:

您的 ssh 程序正在打印这些消息。 Git 在这里唯一的参与是它在使用 ssh 访问另一个 Git 存储库时调用外部(非 Git)ssh 程序。您可以控制 Git 运行哪个 ssh 程序,因此如果您有一个完全可以运行的程序,以及一个可以处理投诉的程序,您可以使用完全运行的程序来停止投诉:根据需要设置 core.sshCommand。否则,请调查您的 ssh 程序。 【参考方案1】:

您可以将GIT_SSH_COMMAND 设置为ssh -Tv 以查看显示错误消息的位置。

/.ssh/known_hosts 表示 Git 认为 $HOME 为空。 因为那个文件应该在$HOME/.ssh/known_hosts

为了测试,在您的 Windows 用户环境变量中设置一个 HOME 变量,设置为 %USERPROFILE%。 然后从新的 CMD 会话(新窗口)重试。

检查您是否设置了任何GIT_SSH 环境变量。 您应该使用来自C:\Windows\System32\OpenSSH\ssh.exeC:\Program Files\Git\usr\bin\ssh.exe 的SSH。

【讨论】:

以上是关于如何解决 Git Portable 的文件访问问题?的主要内容,如果未能解决你的问题,请参考以下文章

Maven插件之portable-config-maven-plugin(不同环境打包)

Git之深入解析如何解决.git目录过大的问题

如何将Eclipse Portable与Java Portable集成?

找不到 config.h 文件(ssh 源代码)

解决“ethereumjs-abi.git无法访问“问题

Portable UDF:Facebook 工程师为了解决不同计算引擎 UDF 统一的项目