尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
TortoiseGit 安装配置:Git for Windows 与 SSH 密钥
1. 为什么我在命令行熟练之后还留着 TortoiseGit聊 TortoiseGit 的安装和配置之前先说清楚它到底是什么、能解决什么问题因为很多人第一次打开官网面对一堆 msi 安装包和语言包根本不知道该先装哪个。TortoiseGit 是 Windows 资源管理器的一个外壳扩展也就是常说的 Shell Extension装完之后你的右键菜单里会多出一整套 Git 相关的操作项江湖人称小乌龟。它本身不实现 Git 的核心逻辑所有对象读写、提交、合并、变基最终都交给底层的 git.exe 去执行它只负责把命令行那套东西翻译成图形界面和右键菜单。说白了它是一层皮但这层皮在 Windows 下非常值钱。我自己的工作习惯是命令行和图形界面混着用。写脚本、批量处理、CI 相关的操作一定走命令行但只要涉及看差异、解决冲突、翻历史提交、临时切分支看一眼代码我一定会开小乌龟。原因很朴素在资源管理器里对着文件右键就能出菜单比切到终端、cd 到目录、敲一长串参数要省太多心力。尤其是解决合并冲突的时候TortoiseMerge 那个三方对比窗口左右两栏加中间结果栏块级选择用我的还是用对方的这个交互体验比在终端里手动删标记高效得多也不容易改错。这篇文章面向的读者范围我放得比较宽。如果你是完全没碰过版本控制的新手从零开始装 Git 装小乌龟照着走一遍就能用起来如果你已经在用命令行只是想给小乌龟补一套顺手的配置可以直接跳到第四、五章看配置项和踩坑点如果你之前装过但遇到中文包不生效configure git.exe 无法识别这类问题第七章有一张速查表基本覆盖了我这些年被问到的绝大多数情况。安装顺序、版本匹配、密钥格式、图标覆盖注册表这几个是真正会让人卡住的点我会把每一个的来龙去脉讲清楚而不是只给一句下一步下一步完成。先给一个全局结论免得你走弯路正确的安装顺序是 Git for Windows → TortoiseGit 主程序 → TortoiseGit 语言包三步的顺序不能乱版本号要对齐装完之后还有一轮配置要做。很多人失败不是败在安装本身而是败在以为装完就完事了结果 git.exe 路径没指定、用户名邮箱没填、SSH 密钥格式不对后面每一步都是坑。2. 装之前先把环境理清楚版本与顺序的讲究2.1 Git for Windows 的安装顺序与版本选择TortoiseGit 必须依赖 Git for Windows 提供的 git.exe这一点是硬约束。它调用 git.exe 的方式是本地进程调用所以 git.exe 的路径必须能被小乌龟找到。你在没装 Git 的机器上装小乌龟安装程序不会拦你装完右键菜单也在但点任何一项都会弹出错误提示说找不到 git。这个坑我见过太多人踩尤其是照着某些过时教程从第二步开始做的。版本选择上64 位 Windows 就下 64 位的 Git for Windows Setup不要下 Portable 版本。Portable 版解压即用看着很干净但它不带注册表写入也不做 PATH 配置小乌龟要手动去找路径得不偿失。32 位系统现在基本绝迹了如果你真的在用注意 Git、TortoiseGit、语言包三个安装包都要选 32 位版本混装必炸。关于版本对齐我给一个经验值TortoiseGit 的大版本更新通常跟 Git 的新特性同步比如 TortoiseGit 2.17 系列配 Git 2.4x 系列是完全没问题的但如果你机器上是很老的 Git 1.9 甚至 1.8TortoiseGit 的某些操作比如带--recurse-submodules的克隆会直接失败。所以我的建议是 Git 装当前稳定版别图省事用系统里某个 IDE 自带的老 git。还有一个容易忽略的点如果你机器上已经装了 VS Code、IntelliJ IDEA、SourceTree 之类带内置 Git 的工具它们自带的 git.exe 和小乌龟要用的 git.exe 是两回事。小乌龟只认你在设置里指定的那一个所以不要指望它能自动大一统。要么统一用官方 Git for Windows要么在设置里明确指到某个路径别让多个 git 版本在系统里打架不然会出现命令行里 commit 成功、小乌龟里显示还没提交这种诡异现象本质是索引文件被不同版本的 Git 交叉读写。2.2 TortoiseGit 主程序与语言包的下载与匹配官网下载页里通常给你这几个文件TortoiseGit-x.y.z.0-64bit.msi、TortoiseGit-x.y.z.0-32bit.msi以及对应的TortoiseGit-LanguagePack-x.y.z.0-64bit-zh_CN.msi。注意这里的版本号主程序是 2.17.0语言包也必须是 2.17.0中间任何一位对不上装完之后中文菜单就不会出现。这是中文包不生效问题的头号原因十个问这个问题的有八个是版本号没对齐。为什么语言包对版本这么敏感因为 TortoiseGit 的语言包不是简单的文本替换文件它是一堆和主程序内部菜单 ID、对话框资源 ID 绑定的资源 DLL。主程序升级后菜单项可能有增删资源 ID 顺序变了老语言包里的映射就对不上轻则部分菜单显示英文重则直接加载失败。所以升级 TortoiseGit 主程序时一定要同步下新版语言包别指望旧语言包还能用。下载来源我建议就走官网第三方下载站打包的安装包我踩过一次坑里面塞了推广组件虽然不一定是恶意的但没人愿意在自己的开发机上冒这个风险。下载完可以顺手核对一下文件大小正常的 64 位主程序包大概在 20MB 上下语言包在 1MB 到 2MB 这个区间如果下载下来的文件只有几百 KB基本可以判定是下载中断或者被替换了重新下。2.3 安装前的三个准备动作第一件事确认你的 Windows 账户有管理员权限。TortoiseGit 的 msi 安装过程要往注册表写 Shell Extension 的注册信息还要往Program Files目录写文件标准用户权限下会中断在某个步骤而且报错信息往往很含糊。如果你的公司电脑做了权限管控提前找 IT 提权别装到一半卡住。第二件事关掉所有资源管理器窗口包括那些后台常驻的文件管理器。Shell Extension 的注册需要重启 explorer.exe 才能生效安装程序会提示你重启你如果不重启会出现右键菜单出来了但图标覆盖不显示的情况。图标覆盖依赖注册表里的ShellIconOverlayIdentifiers这个键是 explorer 启动时读取的不重启进程读不到新值。第三件事确认你待会儿要用的远端仓库地址是 HTTPS 还是 SSH 形式。这个看起来和安装无关其实决定了你后面配置的方向HTTPS 走凭据管理器SSH 走 PuTTY 密钥。提前想清楚可以避免装完之后来回折腾两套认证。3. 一步步走完安装流程从 Git 到小乌龟3.1 Git for Windows 安装向导里的关键勾选项Git for Windows 的安装向导有个特点选项特别多而且每一项的默认值不一定适合你。我把几个真正需要动手改的说一下其余的默认就行。Adjusting your PATH environment这一页三个选项里选第二个Git from the command line and also from 3rd-party software。选第一个Use Git from Git Bash only的话git.exe 不会进系统 PATH小乌龟虽然能通过绝对路径调用但你以后想在 CMD 或 PowerShell 里直接敲 git 就不行了非常别扭。第三个选项Use Git and optional Unix tools from the Command Prompt会把 Unix 工具链也塞进 PATH可能覆盖掉 Windows 自带的find、sort命令脚本里会出问题不推荐。Configuring the line ending conversions这一页选Checkout Windows-style, commit Unix-style line endings对应配置就是core.autocrlftrue。Windows 下文本文件是 CRLFLinux 和 macOS 是 LF团队里如果有人用 Mac 有人用 Windows这一项选错会导致每次提交都显示整个文件被修改diff 全是红绿一片看不出真实改动。这个坑我踩过后来统一了换行符策略才清净。Choosing the SSH executable这一页如果你打算用 TortoiseGit 自带的 PuTTY 那一套Plink Pageant这里选Use OpenSSH还是Use (Tortoise)Plink其实影响不大因为小乌龟那边有独立设置。我一般选 OpenSSH保持 Git 自身生态的完整性小乌龟那边单独指到 Plink 就行两套互不干扰。Configuring the credential helper选Git Credential Manager。这是微软维护的凭据管理器支持多因素认证和 OAuth比老式的manager-core或者明文store都好。明文 store 会把你的密码以明文写进~/.git-credentials文件虽然本地文件权限保护着但一旦误传到仓库或者被同步到网盘就是事故能用管理器就别用明文。其余的默认编辑器随便选你要用 VSCode 就选它命令行里git commit不带-m时会拉起它终端模拟器选 MinTTY体验比 Windows 控制台好git pull行为选默认的fast-forward or merge别急着选 rebaserebase 在团队协作里是双刃剑新手阶段用 merge 更安全Enable file system caching建议勾上大仓库下状态检查会快很多符号链接那一项看你的项目需求Windows 上要开开发者模式才能生效。3.2 TortoiseGit 主程序安装时该注意什么Git 装完git --version能正常输出再开始装小乌龟。双击主程序 msi一路 Next到Custom Setup页面时注意一下默认是TortoiseGit整个功能都装在本地硬盘保持默认即可。有些教程会让你取消勾选Additional icons和Context menu entries我不建议右键菜单这东西本来就是小乌龟的核心价值取消了就白装了。装完会提示重启我是直接重启电脑比只重启 explorer 稳妥。安装过程中有一个细节值得说如果你机器上装了旧版本的 TortoiseGit安装程序会先执行卸载再安装这时候你原有的设置在注册表里的部分会保留但某些路径信息可能失效尤其是 git.exe 路径和图标覆盖设置重装后一定要复查一遍。我就吃过一次亏重装后没检查结果小乌龟指向了一个已经被删除的 git.exe 路径右键菜单点什么都报错排查了半小时才想起来是重装导致的。3.3 语言包的安装时机与生效条件语言包必须在主程序装完之后、并且最好在重启之前装完。安装过程和主程序一样双击 msi 下一步到底没有任何需要配置的选项。装完的语言包默认不会自动激活需要手动到设置里选右键任意空白处 →TortoiseGit→Settings→General页面右上角有个Language下拉框选中文(简体)确定后会提示需要重启重启资源管理器或者重新登录即可生效。如果你的语言下拉框里压根没有中文选项别怀疑就是版本号没对上或者你装的语言包是 32 位装到了 64 位系统上。卸载语言包重新下载对应版本再装。还有一种少见情况语言包装了也选了中文但只有部分菜单是中文一部分还是英文这还是版本号的问题只是差得比较小比如 2.17.0 的主程序配 2.16.0 的语言包映射能匹配上一部分剩下的就露馅了。4. 装完必须做的一轮配置别让 git.exe 找不到4.1 configure git.exe 无法识别到底是怎么回事装完小乌龟第一次右键打开任意一个 Git 仓库或者在设置里点确定很多人会看到一条提示Configure git.exe或者Git.exe path is not configured。这个提示的意思是小乌龟还不知道该调用哪个 git.exe。它会尝试自动探测探测逻辑是有限的一组常见路径如果你把 Git 装到了非默认目录或者用了个绿色版 Git它探测不到。进去设置右键 →TortoiseGit→Settings→General页面第一行就是Git.exe Path。正确的填法是指到 git.exe 这个可执行文件本身不是目录。常见路径有两个C:\Program Files\Git\bin\git.exeC:\Program Files\Git\cmd\git.exe这两个区别在哪bin目录下的 git.exe 是完整的 Unix 风格入口cmd目录下的是一个包装器主要给 CMD 环境用。对小乌龟来说两者都能用我习惯填bin\git.exe。填完之后点右边的Check now按钮如果弹出一个提示框显示 Git 的版本号比如git version 2.43.0.windows.1就说明配对了。常见的填错方式有三种一是填成了C:\Program Files\Git\这个目录小乌龟会把它当文件处理直接报错二是填成了 32 位路径比如你系统是 64 位但装了 32 位 Git路径里带(x86)能配上但某些大仓库会有内存问题三是路径里有空格或者中文字符没处理好这种情况少见但如果你把 Git 装在了中文用户名目录下偶尔会出问题建议统一装在Program Files下。提示如果你同时保税着多个 Git 安装比如 Git for Windows 和某个 IDE 内置的 Git一定要确保这里的路径和你命令行里which git指向的是同一个。两个不同版本的 Git 交叉读写同一个仓库的索引会出现状态错乱的假象。4.2 用户名、邮箱与凭据保存方式的配置Settings→Git页面这里有Name和Email两个输入框填的内容等价于执行git config --global user.name和user.email。这两个值会写进你每一次提交的元信息里是全项目组都能看到的东西所以别乱填。用公司邮箱就填公司邮箱个人项目填自己的。填错了也不是不能改但已经提交的历史改动起来很麻烦需要 filter-branch 或者 filter-repo 重写历史还要强推协作仓库里这是大动作能避免就避免。这里还有个Use system-wide (Global)之类的选项意思是这次设置是写到全局配置还是当前仓库的本地配置。如果你需要在不同的仓库用不同的身份比如公司项目用一个邮箱、开源项目用另一个可以在具体仓库目录里单独设不要全局改来改去。设置文件的位置是C:\Users\你的用户名\.gitconfig用记事本打开就能看出问题时看这个文件比在 GUI 里翻来翻去更快。凭据保存方面如果你用的是 HTTPS 形式的远端地址第一次 push 会弹窗要账号密码输完之后会被 Windows 凭据管理器记下来后续不再问。想看或者想删除已保存的凭据到控制面板的凭据管理器→Windows 凭据里找对应站点删掉即可。有时候换了账号密码之后一直报认证失败就是这里还存着旧的删掉重新输一次就对了。不建议用store模式前面提过明文存盘的风险不值得省那一次输密码的麻烦。4.3 换行符、长路径与大小写的三处全局设置这三个配置项藏得比较深但改不改直接影响日常体验我建议一次性都设好。打开Settings→Git→ 点Edit global .gitconfig按钮会弹出记事本直接编辑配置文件把下面几行加进去[core] autocrlf true longpaths true ignorecase falseautocrlftrue是 Windows 下的标准配置检出时把 LF 转成 CRLF提交时再转回 LF保证仓库里统一是 LF。longpathstrue解决的是 Windows 260 字符路径长度限制很多 Java 项目或者 node_modules 嵌套深的项目路径轻易就超了不开这个选项克隆到一半会报文件名或扩展名太长。ignorecasefalse是让 Git 区分文件名大小写这个在跨平台项目里很重要Windows 文件系统本身不区分如果你在 Windows 上把README.md改成了readme.md不设这一项 Git 会认为文件没变化推到 Linux 服务器上就出问题。改完保存回到设置界面点确定。这几项也可以直接在小乌龟的Settings→Git→ 相应的配置节里改效果一样看个人习惯。改完之后建议在一个测试仓库里验证一下新建一个 txt 文件改个大小写名字看看小乌龟的状态列表有没有识别为已修改。5. SSH 密钥配置小乌龟用的是 PuTTY 那一套5.1 用 PuTTYgen 生成密钥并正确保存私钥如果你准备用 SSH 形式连远端仓库比如gitxxx.com:user/repo.git这种地址就需要配密钥。这里有个重要的认知差异命令行 Git 默认用 OpenSSH 格式的密钥也就是id_rsa和id_rsa.pub这一对而小乌龟默认用的是 PuTTY 工具链需要的是.ppk格式的私钥。两套格式不通用直接把id_rsa填进小乌龟是认不出来的这是新手最容易卡的地方。生成方式很简单开始菜单里找TortoiseGit文件夹 →PuTTYgen。打开后点Generate然后在窗口空白区域来回移动鼠标让程序采集随机性。密钥位数默认 2048 位够用想更稳可以改 4096代价是生成慢一点、连接握手时稍微慢一点日常感知不到。生成完有两块内容要注意上面框里的Public key for pasting into OpenSSH authorized_keys file是公钥整段复制粘到远端平台的 SSH Key 设置里下面要点Save private key保存成.ppk文件建议放在C:\Users\你的用户名\.ssh\目录下命名比如id_rsa.ppk。保存时会问你要不要设置密码短语设了更安全但每次用都要输配合 Pageant 可以只输一次。5.2 公钥上传远程与 Pageant 常驻加载公钥上传这一步不同平台的入口不一样GitHub 在 Settings → SSH and GPG keys → New SSH keyGitLab 在 Preferences → SSH Keys国内的平台一般在个人设置里的SSH 公钥栏目。粘贴的公钥是完整的一整行以ssh-rsa或ssh-ed25519开头结尾是你的邮箱或注释不要只粘中间那段。粘完保存有的平台会让你验证一次密码。私钥这边用小乌龟自带的Pageant做常驻代理。开始菜单找Pageant启动后它会缩到系统托盘一个带帽子的小电脑图标双击图标打开点Add Key选中刚才保存的.ppk文件输入密码短语密钥就加载进去了。Pageant 常驻之后所有走 Plink 的连接都会自动用它加载的密钥不用每次输密码。想让 Pageant 开机自动启动并自动加载密钥把 Pageant 的快捷方式放进启动目录并且在快捷方式的目标里加参数C:\Program Files\TortoiseGit\bin\pageant.exe C:\Users\你的用户名\.ssh\id_rsa.ppk。这样开机就能用省掉手动加载。这个技巧在官方文档里写着但不显眼很多人用了几年都不知道。5.3 SSH 客户端选择与连接测试小乌龟默认的 SSH 客户端是TortoiseGitPlink.exe在Settings→Network页面能看到SSH client这一栏。默认值应该是C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe。如果你已经有一套 OpenSSH 的密钥不想再生成一份 PuTTY 格式的也可以把这一栏改成C:\Windows\System32\OpenSSH\ssh.exe或者C:\Program Files\Git\usr\bin\ssh.exe这样就能直接复用id_rsa。两种方案都行选一种就别混着来。配置完一定要点这一页的Test按钮选一个远端地址测一下。测试成功会弹出一个窗口显示远端服务器的欢迎信息和你的身份识别结果如果失败看提示信息Disconnected: No supported authentication methods available通常是公钥没上传或者没加载到 PageantServer refused our key多半是公钥粘错了或者复制时多了换行Connection timed out是网络或者端口的问题检查一下远端地址里的端口号有没有漏写。6. 日常高频操作把右键菜单用顺手6.1 克隆仓库与切换分支克隆的入口在任意空白目录右键 →Git Clone。弹窗里URL填远端地址Directory填本地目录如果你用的是 SSH 并且密钥在 Pageant 里加载好了Load Putty Key这一项可以不勾让 Plink 自己去找。Depth是浅克隆的深度默认不勾是完整克隆如果你只是临时看代码勾上 1 就只拉最新一个提交速度飞快但要记住浅克隆的仓库没法正常做很多历史操作别在正式开发目录里用。克隆完成后目录里的文件图标上会带绿色对勾表示是已版本控制的干净状态。切换分支的操作是右键 →TortoiseGit→Switch/Checkout。弹窗顶部Branch下拉框里列着本地和远程的所有分支选一个远程分支通常是origin/xxx形式下面Create New Branch会自动勾选并生成同名本地分支确定后本地就切过去了。如果你要新建一个全新分支做功能开发在Branch里直接敲新名字Create New Branch会自动勾上勾选Switch after creation一步到位。切换分支时如果本地有未提交的改动小乌龟会拦住你并提示有本地修改要么先提交要么搁置Stash。搁置这个功能很实用右键 →TortoiseGit→Stash Save把当前改动打包存起来工作区变干净切完分支再Stash Pop恢复。我在紧急修 bug 的时候经常这么干比临时提交一个WIP要干净得多。6.2 提交改动与查看差异提交的正确姿势是先看差异再提交别闭着眼睛全选。右键 →Git Commit - 分支名弹出的窗口分上下两部分上面是日志信息输入框下面是改动文件列表。文件列表里每一项前面有个复选框勾上的才会被提交双击某一项会打开 TortoiseMerge 看具体差异左边是你的新版本右边是仓库里的旧版本逐行对比红减绿增一目了然。看完差异确认没问题了在日志框里写清楚这次改了什么为什么改。提交信息这块我有个坚持了很多年的习惯第一行写不超过 50 字的摘要空一行下面再写详细说明。因为大部分 Git 工具在列表视图里只显示第一行摘要写得乱七八糟翻历史的时候就是一场灾难。小乌龟的日志框如果只写一行也没关系但别写成修改更新这种毫无信息量的词。提交后如果想直接推送到远端用提交窗口右下角的Commit Push按钮一步完成两件事。不过我更推荐分开做先提交再推送中间可以去Show Log里看一眼提交历史对不对确认无误再推。推错一次虽然能改但协作仓库里 force push 是要打招呼的能不折腾就不折腾。6.3 看日志、翻历史与解决冲突Show Log是我用得最多的功能右键 →TortoiseGit→Show Log打开的窗口左侧是提交列表右侧是本次提交的改动文件底部的信息栏显示提交的全部信息。窗口顶部有一排按钮能切换显示模式All Branches会把所有分支的提交都画出来做出一个分支拓扑图勾选某一个分支则只看这条线。合并、变基、cherry-pick 这些操作的痕迹在拓扑图里看得一清二楚比命令行里git log --graph --oneline --all的输出要直观。冲突处理是小乌龟的强项。拉取或者合并时如果冲突了文件会被标记为冲突状态右键 →TortoiseGit→Edit Conflicts会打开 TortoiseMerge 的冲突解决窗口三栏布局左边是本地版本右边是远端版本中间是合并结果。每个冲突块旁边有按钮Use text block from mine/theirs一键选用某一方或者手动编辑中间栏。全部解决保存后右键被标记的文件 →Resolved然后正常提交这次合并。这个流程我用了很多年说实话比在编辑器里找标记要可靠得多因为编辑器插件偶尔会漏掉某些标记用 TortoiseMerge 是强制的、显式的。6.4 忽略文件与同步对话框项目里的编译产物、IDE 配置文件、日志目录这些都不该进仓库。右键要忽略的文件或目录 →TortoiseGit→Add to ignore list弹出一个子菜单可以选择忽略这个具体文件、这个扩展名的所有文件、或者同名的所有目录。选完之后小乌龟会自动往.gitignore里追加规则并且把文件从索引里移除。这一点很重要已经提交到仓库的文件光加.gitignore是不够的必须先从索引里删掉小乌龟这个操作帮你把两步都做了。.gitignore的语法值得花时间学一下它不是简单的文件名匹配。/build/表示只忽略根目录下的 build 目录*.log忽略所有日志文件!important.log表示前面虽然忽略了所有 log 但这一份要保留**/temp/匹配任意层级的 temp 目录。语法写错了不会报错只是规则不生效所以发现明明加了忽略但文件还是出现的时候第一件事就是检查语法第二件事是确认文件有没有从索引里移除。同步对话框Git Sync是另一个值得养成的习惯。它把拉取、推送、看差异几个操作合在一个窗口里左上角显示当前分支和远端分支的领先/落后提交数右边是即将推送的提交列表。我在推送前习惯先点一下Sync看一眼这个领先 3 个提交、落后 0 个的数字确认没有遗漏的远端更新再点推送。多这一步大概两秒钟但能避免很多推上去才发现远端有新提交、还得回来合并的麻烦。7. 常见问题速查与排查思路7.1 中文包不生效的三层排查按可能性从高到低排第一版本号不匹配主程序和语言包的版本必须是同一个2.17.0 配 2.17.0差一位都不行。第二安装顺序错了先装语言包后装主程序语言包的资源会被主程序安装时覆盖掉卸载语言包重装即可。第三设置里没选语言装完只是个文件存在要在Settings→General→Language里主动选中文简体重启。这三步都做完还是不生效去Program Files\TortoiseGit\Languages目录看一眼语言包文件是不是真的在那儿文件名类似TortoiseGit_zh_CN.dll不在就是安装没成功。有一个隐蔽的情况值得单独说如果你是用非管理员账户装的语言包可能装到了用户目录而不是程序目录小乌龟在主程序目录里找不到它。解决办法是用管理员权限重装一遍语言包。7.2 图标覆盖不显示的原因与处理图标覆盖就是文件图标上那个绿色对勾、红色感叹号、蓝色加号。不显示的原因主要有两类。第一类是 Windows 的限制系统最多只支持 15 个图标覆盖处理器而注册这个能力的软件很多OneDrive、Dropbox、各种网盘客户端都会来抢。小乌龟的图标是排在注册表某一段下的如果被排到了 15 名之外就直接不显示了。解决办法是打开注册表编辑器定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers把 TortoiseGit 相关的几项名字前面加空格让它们按字母序排到最前面加完重启 explorer。第二类是状态缓存的问题。小乌龟有个Status Cache设置在Settings→Icon Overlays页面有 Default、Shell、None 三档。Default 会用一个小缓存在后台扫描状态最省资源Shell 模式由资源管理器主动查询实时性最好但目录大的时候会卡None 就完全不显示图标了。如果你切过这个设置可能是不小心切到了 None切回 Default 重启即可。7.3 认证失败与反复弹窗HTTPS 形式反复弹窗要密码基本都是凭据管理器里存的那一份失效了。去控制面板 → 凭据管理器 → Windows 凭据找到对应站点的条目删掉重新操作一次输新密码就会被重新记住。如果你换了账号但一直认证失败八成也是旧凭据在作祟。SSH 形式反复弹窗要密码短语说明 Pageant 里没加载密钥或者加载了但进程被关掉了。检查托盘图标重新Add Key。还有一种情况是仓库的远端地址从 HTTPS 改成了 SSH或者反过来但本地仓库的origin还指向老地址。右键 →TortoiseGit→Settings→Git→Remote在这里可以直接改远端 URL。改完顺手测试一次连接。现象高概率原因处理方式菜单全是英文语言包版本不匹配或未选择语言核对版本号卸载重装语言包设置里选中文点任何菜单都报错找不到 gitgit.exe 路径未配置Settings → General 指定 bin\git.exe 并点 Check now文件图标没有状态标记图标覆盖被抢或缓存设成 None注册表加空格提前排序重启 explorer检查 Icon Overlays 设置提交时报路径过长未开 longpaths全局配置加 core.longpathstruediff 全部行都显示改动换行符策略不一致统一 core.autocrlftrue重新检出文件切换分支时被拦住有未提交改动先提交或 Stash Save 搁置再切换推送被拒绝远端有本地没有的提交先 Pull 或 Fetch 合并再推SSH 提示 Server refused our key公钥未上传或复制不完整重新复制完整公钥到远端平台注意首尾不要漏7.4 几个我踩过的非典型坑第一个是杀毒软件误伤。某些安全软件会把 Git 的频繁文件读写行为当成可疑操作导致提交时卡住或者报文件被占用。遇到莫名的无法写入索引错误先临时关掉实时防护试一次如果立刻好了就把 Git 的目录和你的工作目录加入白名单。第二个是 git config 里积攒了历史遗留的错误配置。比如很早以前设过一个http.proxy指向某个已经停用的地址之后所有 HTTPS 操作都超时但在 GUI 里根本看不出来。排查方式是直接用记事本打开C:\Users\你的用户名\.gitconfig从上到下看一遍把不认识的、指向不明地址的条目清掉。这个文件通常只有几十行扫一眼很快。第三个是仓库目录放在了同步盘里。把工作目录放在 OneDrive 或者某些网盘的同步文件夹下Git 的.git目录会被同步进程不断扫描和锁定导致操作随机失败、状态显示错乱严重的时候整个.git目录会被同步冲突搞坏。开发目录放在本地磁盘的普通路径下比如D:\work\不要放在任何自动同步的文件夹里这一条我建议当成铁律。第四个是分支名和标签名重名。Git 里分支和标签是两个命名空间重名本身不报错但用命令行操作时会产生歧义小乌龟的某些菜单也会显示得让人迷惑。项目里如果出现了v1.0标签和v1.0分支并存的情况趁早改掉一个。关于后续可能的扩展方向如果你所在团队的流程比较规范可以继续研究小乌龟的Hook Scripts配置在提交前自动跑一遍代码格式检查或者单元测试把低级问题拦在本地。也可以研究一下AutoCrlf相关的.gitattributes文件写法比全局配置更精确能按文件类型分别指定换行符策略。这些内容我打算下次单独整理一篇这篇先把安装和基础配置说透。我个人的体会是装小乌龟最花时间的从来不是下一步下一步而是装完之后那一轮配置和踩坑排查。把 git.exe 路径、用户名邮箱、换行符策略、SSH 密钥这四样一次性弄对后面几年都省心偷懒跳过其中任何一项迟早会在某个具体操作上被绊一下而且报错信息往往指向别的地方排查起来格外费劲。慢一点一次做对。
RELATED

相关推荐

分数傅里叶变换与LFM信号处理:原理、MATLAB实现与参数估计

分数傅里叶变换与LFM信号处理:原理、MATLAB实现与参数估计

简介:这份rar压缩包聚焦分数傅里叶变换(FRFT)与线性调频信号(LFM)的联合处理,面向信号处理学习者、研究人员以及雷达与通信工程师,解决非平稳信号分析中FRFT算法实现、LFM信号生成与检测等实际问…

📅 2026/9/16 18:49:08
PAT考试1003题解析与高效备考策略

PAT考试1003题解析与高效备考策略

1. PAT(Basic Level)考试概述PAT(Programming Ability Test)是由浙江大学计算机科学与技术学院主办的编程能力测试,分为Basic Level、Advanced Level和Top Level三个级别。其中Basic Level主要面向编程初学者,考察基本的编程逻辑和…

📅 2026/9/16 18:49:08
StarRocks SQL 常见问题全解:从查询缓存、排序稳定性到崩溃与内存排障实战

StarRocks SQL 常见问题全解:从查询缓存、排序稳定性到崩溃与内存排障实战

StarRocks SQL 常见问题全解:从查询缓存、排序稳定性到崩溃与内存排障实战 【免费下载链接】starrocks The worlds fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario…

📅 2026/9/16 18:44:08
MORE NEWS

更多资讯

📰

pypdf 页面裁剪与变换完全指南:旋转、缩放、合并与 N-up 排版

pypdf 页面裁剪与变换完全指南:旋转、缩放、合并与 N-up 排版 【免费下载链接】pypdf A pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files 项目地址: https://gitcode.com/GitHub_Trending/py/pypdf …

📰

ODS Lemonade SDK适配:AMD加速推理路径全解析

ODS Lemonade SDK适配:AMD加速推理路径全解析 【免费下载链接】ODS Turn your PC, Mac, or Linux box into an AI server. LLM inference, chat UI, voice, agents, workflows, RAG, and image generation. 项目地址: https://gitcode.com/GitHub_Trending/dr/ODS…

📰

Jetson Orin高可靠AI开发环境部署指南

1. 项目概述:这不是一次普通系统安装,而是为Jetson Orin构建高可靠性边缘AI开发基座“orin-开发环境部署2”这个标题看似平淡,实则藏着一个硬核事实:它不是教你怎么点几下鼠标装个Ubuntu,而是在为NVIDIA Jetson Orin系…

📰

Stream 视频边缘网络(SFU)架构解析:Vision-Agents 电话 RAG 示例中的 video.md 知识库文档

Stream 视频边缘网络(SFU)架构解析:Vision-Agents 电话 RAG 示例中的 video.md 知识库文档 【免费下载链接】Vision-Agents Open Vision Agents by Stream. Build voice and vision agents quickly with any model or video provider. Uses S…

📰

STM32 RTC例程深度解析:从解压配置到掉电保持与校准

简介:STM32例程Example_RTC.7z是一份基于STM32F10x标准外设库的RTC实时时钟开发示例工程,适合STM32初学者快速入门,可掌握RTC时钟配置、日历读写与低功耗唤醒等常见开发方法。压缩包共54个文件,主体为14个C源码与15个头文件&#…

📰

Streambert 法律边界完整解析:影视搜索引擎聚合器如何规避版权责任

Streambert 法律边界完整解析:影视搜索引擎聚合器如何规避版权责任 【免费下载链接】streambert A cross-platform Electron Desktop App to stream and download any Movie, TV Series or Anime in the World. Zero Ads and Tracking 项目地址: https://gitcode.…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬