无法安装Gerrit的commit-msg挂钩;身份验证似乎很好

第三

我刚刚将我的Git工具升级到最新版本(TortoiseGit 1.8.8.0PuTTy 0.63Windows 1.9.0的Git Bash),并修复了Git Bash在之后永久挂起的问题git pull我遵循了公司内部的指示来克隆新的本地存储库,而安装Gerrit的commit-msg钩子却失败了

scp -p -P 29418 [USERNAME]@[HOST]:hooks/commit-msg .git/hooks/在Git Bash中执行后,出现错误Permission denied (publickey)但是,我的SSH密钥和其他组件似乎一切正常,因为我可以git pull/git push没有任何问题Git Bash不反对任何有关丢失或不正确身份验证的问题,并继续进行所有需要身份验证的操作。

是什么引起此奇怪的错误(这是我的本地计算机或Gerrit安装引起的)吗?如何解决这个问题呢?而且-最重要(或最奇怪)-怎么可能在安装commit-msg钩子时身份验证失败,而在推/拉/其他需要身份验证的命令上正常运行?

通过commit-msg从另一个存储库复制我设法找到了一个丑陋的解决方法(在所有这些问题开始出现之前已经存在了一段时间,commit-msg因为出于同样的原因,我也无法在该存储库中安装/覆盖钩子) 。但是我想知道,这是怎么回事,或者我在这种情况下想念什么?

Uncletall

Git有一个指定使用哪个ssh的选项,它使用Plink而不是Bash ssh。当您使用scp时,它将使用Bash ssh。您还可以通过以下方式commit-msg直接从gerrit服务器下载钩子:https://yourserver/r/tools/hooks/commit-msg

如果您始终使用Gerrit,则建议您将commit-msg钩子复制到C:\Program Files (x86)\Git\share\git-core\templates\hooks这样,commit-msg.git\hooks克隆存储库时挂钩将始终放置在您的文件夹中。当我90%的时间都在Gerrit储存库上工作时,我发现在不需要时可以将其删除,然后在需要时将其添加起来更容易。

否则,您可以生成一个新的ssh密钥并添加它。然后,您有一个用于命令行目的的键,它使用ssh和scp,另一个是用于Pit的Git。

实际上,对于我公司而言,我现在确保新安装始终指定使用SSH,而不是PLink,因为它可以防止出现此类问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章