Gio*_*gio 4 git macos terminal gitlab macos-monterey
我最近升级到 macOS Monterey,并注意到我无法执行任何影响在线存储库的 git 命令。到目前为止受影响的命令有
git push
git pull
git clone
Run Code Online (Sandbox Code Playgroud)
所有命令只输出notingng。字面上地。我输入它们,甚至没有错误,即使在几分钟后,远程存储库也没有得到推送。
我尝试使用来自 Github 和 Gitlab 的存储库以及私有和公共存储库来运行这些命令。我的 ssh 密钥已就位,远程 URL 似乎是正确的,我没有处于分离 HEAD 模式,我重新安装了 Xcode 和 Xcode 开发人员工具,我通过 Homebrew 升级了 git,我通过 Homebrew 重新安装了 git,我激活并停用了我的防火墙在我的系统设置中,现在我尝试关闭然后再次打开我的Mac(它仍然不起作用)。
GIT_CURL_VERBOSE=1 GIT_TRACE=1 git push
Run Code Online (Sandbox Code Playgroud)
这给了我一个完整的日志,并且推送成功。
13:56:35.495625 git.c:455 trace: built-in: git push
13:56:35.497727 run-command.c:668 trace: run_command: unset GIT_PREFIX; ssh git@gitlab.com 'git-receive-pack '\''airshopers/storefront.git'\'''
13:56:43.997487 run-command.c:668 trace: run_command: .git/hooks/pre-push origin git@gitlab.com:airshopers/storefront.git
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)
此外,git push计算机重新启动后我运行的第二次似乎有效。
更新添加详细和跟踪标志也不能解决问题,因为“解决方法”随机停止工作,我再次看到前面提到的行为。
我真的已经穷尽了我的知识,任何提示都会受到赞赏:)
升级到 Monterey 似乎破坏了 macOS ssh。我通过从 Homebrew 安装 openssh 解决了这个问题:
brew install openssh
Run Code Online (Sandbox Code Playgroud)
安装似乎还更新了ssh使用的默认值,因此which ssh现在指向/usr/local/bin/ssh而不是本机。
另请确保打开一个新的终端窗口,或重新获取终端。否则,在当前会话中将使用本机 ssh。
这似乎已经解决了问题,如果我在这里没有遇到任何新问题,我会将这个答案标记为已接受。