推送代码至Google Cloud Source Repos时遇认证错误及400失败
解决Cloud Source Repo推送时的400凭证无效错误
我来帮你搞定这个推送失败的问题——你遇到的INVALID_ARGUMENT加无效凭证错误,就算更新了.gitcookies还是出错,大概率是旧凭证缓存或者cookie配置出了问题,按下面的步骤来排查修复:
1. 检查.gitcookies文件的正确性
首先确认你的.gitcookies文件(通常在用户主目录~/.gitcookies)里的条目格式是否正确:
- 执行命令查看内容:
cat ~/.gitcookies - 对应
source.developers.google.com的条目应该是类似这样的格式:
注意不要有多余空格,密码要和你生成的完全一致,账号部分要对应正确的前缀。source.developers.google.com FALSE / TRUE 1600000000 o git-<你的谷歌账号邮箱>=<新生成的密码>
2. 清除旧的git凭证缓存
很多时候系统会缓存旧的凭证,就算你更新了.gitcookies,git还是会调用缓存里的无效凭证:
- 如果用的是git内置的缓存助手,执行:
git credential-cache exit - macOS用户:打开「钥匙串访问」,搜索
source.developers.google.com,删除所有相关的密码条目; - Windows用户:打开「控制面板→凭证管理器→Windows凭证」,找到对应Cloud Source Repo的git凭证并删除;
3. 重新配置git凭证存储(推荐方案)
可以让git直接用凭证存储文件替代cookie,避免cookie格式带来的问题:
- 执行以下命令做全局配置:
git config --global credential.helper store git config --global credential.https://source.developers.google.com.username git-<你的谷歌邮箱前缀> - 然后尝试重新推送代码,这时候git会提示你输入密码,输入你新生成的密码即可——git会自动把凭证存入
~/.git-credentials文件,后续推送就不会再触发认证错误了。
4. 验证远程仓库URL是否正确
有时候拼写错误也会导致奇怪的400错误,执行命令确认远程URL:
git remote -v
确保输出的URL和你要推送的Cloud Source Repo地址完全一致,没有多余的字符或者拼写错误。
如果以上步骤都试过还是不行,可以尝试重新克隆仓库,把本地的变更合并到新克隆的仓库后再推送,这样能彻底排除本地配置的遗留问题。
内容的提问来源于stack exchange,提问作者Lance Armah-Abraham
相关产品推荐
相关产品推荐

