当前位置: 首页 > news >正文

git 配置错误导致无法推送远端仓库?本文介绍各种修复方式

无论你使用原生的 git 命令行,还是使用其他的 GUI 客户端来管理你的 git 仓库,都会遇到 git 远程仓库的身份认证机制。如果在某个远程仓库第一次认证的时候输入了错误的信息,那么 git 以及一部分 git GUI 客户端会记住这个错误的身份认证信息,使得以后也不能继续与远程仓库进行交互了。

本文介绍如何清除 git 的身份认证信息,以便你可以重新获得输入正确身份认证的机会。


本文内容

    • 凭据管理器
    • .ssh
    • TortoiseGitPlink
      • 方法一:替换 SSH 客户端
      • 方法二:导入已有的 SSH 配置

凭据管理器

如果你使用基于 https 的身份认证方式操作 git 远端,并且输入了错误的密码,那么这部分密码将保存在 Windows 的凭据管理器中。

在 Windows 搜索框中搜索“凭据管理器”或者在控制面板中进入“用户账户”->“凭据管理器”可以打开凭据管理界面。我们需要选择右边的“Windows 凭据”标签。

随后,在下方的“普通凭据”中,找到出现问题的 git 远程仓库地址,然后展开,将其删除。

凭据管理器

删除之后,再次在 git 命令行或者基于 git 命令行的客户端的 GUI 客户端中使用 git 操作远端仓库将会重新提示输入这个远端仓库的用户名和密码。

.ssh

基于 SSH 的身份认证方式需要自己手工方式都是需要自己手动配置好才可以正常使用的,不会给你像 https 那样输错密码的机会。如果配置错误则不能操作远端仓库。当然,配错了直接删掉重新再来一次就好了。参见网上一大堆的配置方法:git-ssh 配置和使用 - fedl - SegmentFault 思否。

配置好的 SSH

TortoiseGitPlink

另外,有一些客户端如 Tortoise 会自带一份认证管理工具。TortoiseGit 自带了 TortoiseGitPlink,它声称比自带的 SSH 要好用但问题是你得单独为它配置一遍……(逃

命名 SSH 配好了而没有配 TortoiseGitPlink 的时候,它分分钟挂给你看:

TortoiseGitPlink

那么如何修复呢?

方法一:替换 SSH 客户端

替换为与 git 命令行相同的 SSH 客户端可以避免重复配置公私钥对。

打开 TortoiseGit 的设置页面,切换到“网络”标签,然后将 SSH 客户端改为 SSH。通常在 C:\Program Files\Git\usr\bin 目录中,如果没找到,也可以去 C:\Program Files (x86)\Git\bin\ssh.exe 目录寻找。

SSH 客户端

方法二:导入已有的 SSH 配置

打开 C:\Program Files\TortoiseGit\bin\puttygen.exe 程序,然后点击“Load”,选择 git 客户端早已配好的 ssh 私钥。如果打开文件对话框中你找不到密钥文件,可能需要将过滤器设置为所有文件(*.*)。(如果之前没配好 SSH,那么建议去配置一下,不然 SSH 的认证方式将只有 TortoiseGit 客户端工具可用。本节接下来的内容将默认你已经配好 SSH,在远端仓库添加了公钥。)

puttygen

导入成功

导入成功之后,点击保存私钥,选择一个合适的路径存下来。

随后,打开 C:\Program Files\TortoiseGit\bin\puttygen.exe 程序。打开之后,你会在任务栏通知区域看到它的图标,右键点击 Add Key 然后选择我们刚刚保存的私钥。

Add Key

随后,你需要保持 puttygen.exe 一直处于运行状态,以便 TortoiseGit 可以一直使用。


参考资料

  • git - Remove saved credentials from TortoiseGit - Stack Overflow
  • git - my old username is still in use - Stack Overflow
  • windows - How to solve TortoiseGitPlink Fatal Error? - Stack Overflow

我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

相关文章:

  • WPF 很少人知道的科技
  • WPF 程序的编译过程
  • 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案)
  • .NET 的程序集加载上下文
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用)
  • 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目)
  • 如何快速创建 Visual Studio 代码片段?
  • 从 git 的历史记录中彻底删除文件或文件夹
  • 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢?
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI
  • 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来
  • 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间)
  • @angular/forms 源码解析之双向绑定
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【Amaple教程】5. 插件
  • 【React系列】如何构建React应用程序
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • CentOS6 编译安装 redis-3.2.3
  • CSS盒模型深入
  • css系列之关于字体的事
  • Cumulo 的 ClojureScript 模块已经成型
  • Java比较器对数组,集合排序
  • k8s如何管理Pod
  • PHP 7 修改了什么呢 -- 2
  • React-redux的原理以及使用
  • 复习Javascript专题(四):js中的深浅拷贝
  • 搞机器学习要哪些技能
  • 给新手的新浪微博 SDK 集成教程【一】
  • 好的网址,关于.net 4.0 ,vs 2010
  • 离散点最小(凸)包围边界查找
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 前端临床手札——文件上传
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 数据结构java版之冒泡排序及优化
  • 栈实现走出迷宫(C++)
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • #NOIP 2014# day.2 T2 寻找道路
  • #stm32整理(一)flash读写
  • $.ajax()参数及用法
  • (C#)获取字符编码的类
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (function(){})()的分步解析
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (分布式缓存)Redis持久化
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (转)3D模板阴影原理
  • (转)LINQ之路