tre*_*der 2 git bash githooks gerrit
我刚刚将我的Git工具升级到最新版本(TortoiseGit 1.8.8.0,PuTTy 0.63和Git Bash for Windows 1.9.0)并且应用了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在此存储库中安装/覆盖挂钩 - 出于同样的原因) .但是我想知道,这里发生了什么,或者我对这个案子有什么遗漏?
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,一个用于Git使用PLink.
实际上,对于我的公司,我现在确保新安装总是指定使用SSH而不是PLink,因为它可以防止这样的问题.
| 归档时间: |
|
| 查看次数: |
5999 次 |
| 最近记录: |