换个视角来看git命令与代码库发生网络交互报错事件
git的一系列命令中像 clone、pull、push等与代码库发生网络交互时,可能报下面的错误信息
fatal: remote error: CAPTCHA required Your Stash account has been marked as requiring a CAPTCHA to be solved before you may login again. This is typically caused by too many attempts to login with an incorrect password. The required CAPTCHA prevents your SCM client from accessing Stash until it is solved, even if you enter your password correctly. If you are currently logged in to Stash via a browser you may need to logout and then log back in in order to clear the CAPTCHA.
从报错信息来看,大概的意思是:“你的容器账号在登陆之前需要进行验证,这是因为登陆时太多的密码错误造成的。虽然你当前输入的密码正确,但是这个验证码拒绝客户端访问容器直到这个问题解决。”
这个问题如何解决呢?
这里面提到了一个单词“ CAPTCHA”意思是验证。
上面提到的“验证”是否就是图中的验证码概念呢?
我们来逻辑推测一把。
以clone为例子,git执行clone命令,首先需要有可以到代码库中访问代码的权利。我们平时在网页登陆时一般都是通过填写用户名+密码。不过当网页在登陆时密码连续多次输入错误,下面就会出现“验证码”图片让我们点击。我写到这里是不是恍然明白了什么?没错,这个“ CAPTCHA”就是在git访问代码库时出现的“验证码图片”。惊喜不惊喜,意外不惊喜。原来我们平时使用的命令走的路子也是和我们手动页面操作一样。
知道这个原因后,我们修改报错就迎刃而解了。这里我们采用最直观,看起来与这个报错不相关的方式。“1.打开登陆网页,输入正确的用户名+密码登陆进去。2.退出登陆。重新再输入正确的用户名+密码登陆进去。”如此这两次操作,就可以保证再次在页面登陆时,不会弹出“验证码图片”。此时再执行git clone命令。报错消失。顺利拿到了想要的代码。