【发布时间】:2022-01-06 13:08:29
【问题描述】:
我最近升级到 macOS Monterey,发现我无法执行任何影响在线存储库的 git 命令。到目前为止受影响的命令是
git push
git pull
git clone
所有命令都只是输出noting。字面上地。我输入它们,甚至几分钟后都没有错误,并且远程 repo 也没有得到推送。
到目前为止我尝试了什么
我尝试使用来自 Github 和 Gitlab 的存储库以及私有和公共存储库运行这些命令。我的 ssh 密钥就位,远程 URL 似乎是正确的,我没有处于分离 HEAD 模式,我重新安装了 Xcode 和 Xcode 开发人员工具,我通过 Homebrew 升级了 git,我通过 Homebrew 重新安装了 git,我激活和停用了我的防火墙在我的系统设置中,现在我尝试关闭并再次打开我的 Mac(它仍然无法正常工作)。
目前看来可行的方法
GIT_CURL_VERBOSE=1 GIT_TRACE=1 git push
这给了我一个完整的日志,推送成功了。
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
另外,我在计算机重启后运行的第二个git push似乎有效。
更新添加详细和跟踪标志也不能解决问题,因为“解决方法”随机停止工作,我再次看到前面提到的行为。
我真的在我的知识的尽头,任何提示都表示赞赏:)
【问题讨论】:
-
有用的附加调试:
which git(可能取决于 shell)、type git(类似)。还要检查您的core.pager设置,如果未设置,less和/或more是否正常工作。 -
谢谢@torek,
which git给了我预期的版本,而且更少。我不认为它只与输出有关,因为输出适用于git log等,但对遥控器的所有调用都不起作用。 -
有趣。这表明 ssh 和/或 libcurl 存在一些问题。你所有的遥控器都是 ssh 访问的吗?这至少更易于调试,因为 Git 只是在这里运行
ssh,而不是编译 libcurl(编译的库会带来所有动态链接器的复杂性)。 -
Uhmm.. 所以我之前运行了我的
ssh-add以确保。但是,如果是由于 ssh 造成的,那么它甚至不会工作一次。但是例如当我重新启动计算机时,一个电话接通,这意味着 ssh 也不应该是问题。但我现在还是会再检查一次 ssh。 -
任何 ssh 问题都可能是网络问题,或者安装了多个 ssh 版本,或者其他任何问题。但无论如何,它是值得探索的地方。
标签: git macos terminal gitlab macos-monterey