Windows下TortoiseGit安装配置与中文语言包避坑指南 简介这是一份面向 Windows 平台 Git 初学者的 TortoiseGit 图文操作手册压缩包约 1.15MB仅含 1 个 docx 文件按步骤配图排布便于边看边在资源管理器中对照操作。内容围绕小乌龟的右键菜单工作流展开Git 与 TortoiseGit 及中文语言包的安装顺序界面语言、git.exe 路径、用户名与邮箱等基础配置以及用凭证助手记住 HTTPS 密码、生成并上传 SSH 公钥两种免密方式的取舍。克隆、拉取、合并、提交、推送与分支管理均配有示例并分别从 GitHub 与自建 Gitblit 仓库演示 SSH 方式获取代码文中还整理了文件状态角标的含义绿色对号、红色感叹号、蓝色加号等与图标不显示的排查方向。适合刚接触版本控制、希望绕开命令行快速上手协作开发的学生与职场开发者目前已有 2150 人学习。1. 装 TortoiseGit 前先看版本一个语言包引出的坑上周帮人整理一台开发机TortoiseGit 装好了右键菜单也出来了可点开 Settings 之后Language 下拉框里怎么翻都找不到简体中文。语言包其实已经装了只是它是上一个版本。这种翻车在 Windows 上特别常见Git for Windows、TortoiseGit 主程序、中文语言包是三个独立安装包任何一个版本段或位数对不上表现出来的往往不是报错弹窗而是某个功能静默失灵——菜单还是英文的、图标一个都不显示、推送的时候反复问你密码。TortoiseGit 本质上是资源管理器的一层外壳真正干活的是 git.exe所以它比一般软件更依赖“先装什么、后装什么”。装对了克隆、提交、推送就是右键点三下装错了你会花一整天去猜是网络问题还是权限问题。这套环境适合所有在 Windows 上做版本控制的人尤其是从 SVN、TFS 转过来、不想背命令的开发者。2. 安装顺序Git for Windows、TortoiseGit 主程序与中文语言包先把三个包的作用分清楚后面所有的坑基本都出在这里。Git for Windows 提供真正的 git.exe、Git Bash 和 OpenSSH 客户端TortoiseGit 主程序提供右键菜单、设置界面和图标覆盖中文语言包只是一堆翻译资源文件它不改任何功能只把界面文字换掉。所以顺序只能是先 Git再 TortoiseGit最后语言包。有人图省事把主程序先装上装完发现右键菜单能弹出来但所有操作都提示找不到 git.exe回头再补装 Git还得手动去 Settings 里把路径指一遍。2.1 三个组件各自管什么位数怎么对位数这件事值得单独说。64 位系统上装 32 位的 TortoiseGit 也能跑但语言包必须和主程序位数一致版本号也要对得上否则语言包里的资源文件加载不进去界面上就是中英混杂或者干脆全英文。语言包文件名里通常带版本段安装前把主程序版本和语言包版本核一遍比装完再返工省事得多。组件装完提供什么是否必须位数与版本注意Git for Windowsgit.exe、Git Bash、SSH 客户端必须第一个装64 位系统装 64 位包TortoiseGit 主程序右键菜单、Settings、图标覆盖必须第二个装与系统位数一致中文语言包只替换界面文本资源可选位数、版本号必须与主程序完全对应装之前先确认机器上有没有旧版本残留。很多人是换了新电脑从旧机器拷过来一个绿色版或者以前装过又卸载不干净PATH 里躺着两份 git.exeTortoiseGit 用哪一份完全看运气。git --version # 看当前生效的 Git 版本 where git # cmd 里查所有 git.exe 的位置where git如果返回两条以上路径说明 PATH 里有多个 Git得先清理环境变量再装新的。PowerShell 里的等价命令是Get-Command git -All。这一步花两分钟能省掉后面“明明装了新版版本号却是旧的”这种玄学问题。2.2 Git for Windows 安装向导里几个要想一下的选项Git 的安装向导页数不少大部分人一路 Next但有几页选错了后面很别扭。组件选择页保留 Windows Explorer integration 和 Git Bash.git配置文件关联可以按习惯勾。默认编辑器页别选一个本机没装的编辑器否则以后写提交信息会弹出一个空白窗口然后卡住选记事本或者已装的编辑器最稳。PATH 环境变量页选第二项 “Git from the command line and also from 3rd-party software”这样 cmd、PowerShell 和 TortoiseGit 三方都能找到 git.exe选第一项会导致 TortoiseGit 经常找不到命令。换行符页跨 Windows 和 Linux 协作的团队选 “Checkout Windows-style, commit Unix-style line endings”也就是core.autocrlftrue纯 Windows 内部项目选不转换也行但要在团队里统一。终端模拟器页选 MinTTY比 Windows 控制台好用。装完先别急着装 TortoiseGit打开 Git Bash 验一下git --version # 确认版本 git config --global core.autocrlf # 看换行符策略true/false/input git config --global core.editor # 看默认编辑器第一条确认安装成功第二条决定你提交的文件会不会整个文件都变成“已修改”第三条决定你写提交信息时会不会卡住。这三条任意一条不对后面用图形界面都会遇到奇怪现象比如明明只改了一行提交时却提示整个文件都被改写。2.3 装 TortoiseGit 和语言包路径、顺序、重启资源管理器TortoiseGit 安装向导里目标目录保持默认就行Custom Setup 页的东西全保留Ready 页那个 “Configure TortoiseGit” 的勾选框可以先不勾等语言包装完一起配。主程序装完不要立刻打开右键菜单先装语言包。语言包安装时唯一要盯的就是目标目录它必须指向 TortoiseGit 主程序的安装目录默认路径一般会自己带出来但如果你之前改过主程序目录这里就要手动改。装错了的表现是Settings 里 Language 下拉框有中文选项选了之后界面纹丝不动。装完两个包图标覆盖一般不会立刻生效因为 Windows 的图标覆盖处理器是资源管理器启动时加载的。重启资源管理器taskkill /f /im explorer.exe start explorer.exe第一条结束当前资源管理器进程第二条重新拉起来。执行前把打开的文件夹窗口都关掉任务栏会闪一下属于正常现象。不想杀进程就注销重登效果一样。提示Windows 对图标覆盖处理器的数量有上限装了一堆同步盘、云盘客户端之后TortoiseGit 的角标可能被挤掉表现为文件夹全是普通图标。这个放到后面排查章节讲。3. 首次配置四件事语言、git.exe 路径、身份与凭据装完不配置也能克隆但会撞上三个问题找不到 git.exe、提交记录里的作者是机器名、每次推送都弹密码框。这四件事在 Settings 里十分钟能配完值得一次做到位。3.1 先定一个工作目录再打开 Settings目录习惯很重要。我一般建一个纯英文、不带空格、不在系统盘的目录比如E:\Git所有仓库都放它下面。原因不玄学路径里有中文或空格时某些钩子脚本和 SSH 调用会解析出错放在同步盘目录里同步客户端会锁文件导致 git 状态判断异常甚至把.git目录同步坏。在这个目录下打开资源管理器空白处右键 → TortoiseGit → Settings进入配置界面。后面所有配置都在这个对话框里完成配置项分在左栏的几个页签下。3.2 General 页语言、升级检查、git.exe 路径General 页最右边是 Language选简体中文应用后界面立刻切换。下面是升级检查的复选框建议取消勾选公司内网机器每次启动都去检查更新轻则卡两秒重则弹一个连不上的错误框。同一页往下是 Git.exe path这一项是重灾区。要填的是 Git 安装目录下的bin目录不是cmd目录。两个目录里都有 git.exe但cmd\git.exe只是个包装脚本给 cmd 环境用的TortoiseGit 直接调它会出问题。dir D:\Program Files\Git\bin\git.exe # 确认这个路径下真有 git.exe把上面这条命令里的路径换成你自己机器上的实际路径返回文件信息说明找对了返回“找不到文件”就往上翻一层目录看看 Git 到底装哪了。填完点应用再点确定关闭对话框。3.3 Git 页user.name 和 user.email 决定提交记录里的作者左栏切到 Git 页右边填 Name 和 Email。这两个值会写进每一次提交服务端靠 email 把提交和账号关联起来写错了提交记录里就是一堆“未知作者”。git config --global user.name dev-a git config --global user.email dev-aexample.com git config --global --list这三条命令和界面上填的是同一份配置。--global表示写进当前用户目录下的.gitconfig对所有仓库生效第三条把生效的配置全列出来确认写进去了。名字建议用拼音或英文 ID别用中文某些老工具链处理中文作者名会乱码。同一页上有个“编辑本地 .git/config”按钮经常是灰的。这不是 bug因为当前打开的目录不是 Git 仓库根目录局部配置无处可写。想改局部配置先进到某个仓库目录里再开 Settings。配置级别存放位置作用范围典型用途全局用户目录下的 .gitconfig当前用户所有仓库姓名、邮箱、换行符策略局部仓库内 .git/config仅当前仓库公司项目用工作邮箱、特殊换行符局部配置的命令就是去掉--globalcd E:/Git/project git config user.name dev-a-work git config user.email dev-a-workexample.com很多公司要求个人项目和公司项目的提交邮箱分开就是靠这一手全局配个人邮箱公司仓库里单独配工作邮箱。改完用git config --list在仓库目录里确认一下带--global的会显示来源。3.4 凭据助手HTTPS 记住密码以及它的代价用 HTTPS 地址克隆每次拉取推送都要输账号密码烦到一定程度就会去找“记住密码”的开关。做法是在全局配置文件末尾加一段[credential] helper storehelper指定凭据处理方式store表示把用户名密码明文保存到用户目录下的.git-credentials文件里。保存之后HTTPS 方式的拉取推送不再询问。代价要讲清楚这个文件是明文的没有加密改文件权限也挡不住同机器上的其他账户读它。共用机器、临时借用别人的电脑不要开这一项。更稳妥的做法是用系统凭据管理器模式凭据交给 Windows 的凭据管理至少不是一眼能看穿的文本文件。最省事的还是走 SSH压根不需要存密码。注意配了helper store但推送还是要密码多半是配置写在了局部文件里或者凭据文件里存的是改密码之前的旧记录。删掉对应那行再试。4. 从克隆到推送SSH Key、拉取、提交、推送跑一遍配置齐了接下来是实际操作。远程连接只有两条路HTTPS 和 SSH。HTTPS 上手快复制 URL 就能克隆代价是每次认证SSH 要先配公钥配好之后一劳永逸。团队里推荐 SSH尤其是每天要推好几次的岗位。对比项HTTPSSSH克隆前准备无生成密钥并登记公钥到服务端认证频率每次拉取推送一次配置长期有效网络环境走常规 Web 端口限制少走 SSH 端口部分内网会拦权限要求有账号即可需在服务端登记公钥4.1 生成 SSH Key 并登记到服务端先在用户目录下看有没有现成的密钥。C:\Users\用户名\.ssh目录里如果有id_rsa和id_rsa.pub说明以前生成过直接拿去登记不要重复生成覆盖掉否则原来能推的仓库全部失效。ls -al ~/.ssh # Git Bash 里查看是否已有密钥对 ssh-keygen -t rsa -b 4096 -C dev-aexample.com第一条在 Git Bash 里列出密钥目录内容。第二条生成新密钥-t rsa指定算法-b 4096指定长度-C后面是备注写邮箱或机器名方便日后在服务端分辨这是哪台机器的钥匙。回车后会问保存路径和口令路径直接回车用默认口令可以留空留空的话以后用私钥不需要再输密码方便但安全性略低看机器是不是只有你自己用。图形界面的做法是任意文件夹空白处右键 → Git GUI Here → 菜单栏 Help → Show SSH Key没有密钥就点 Generate Key生成过程中鼠标要在窗口里来回动给随机数池攒够熵。生成完把文本框里的内容整段复制出来。登记分两种服务端。在线托管平台一般在个人设置里找 SSH Keys 相关的页面点新增把公钥整段粘进去。自建 Git 服务在用户中心的 SSH Keys 里添加操作一样。粘贴的内容是id_rsa.pub里的全部文本以ssh-rsa开头的一长行别粘错成没有.pub后缀的私钥。服务端为什么要公钥它保存公钥认证时用公钥加密一段挑战数据只有持有私钥的一方能解开以此确认推送的人确实是密钥持有人。私钥必须留在本地泄露等于把仓库写权限交出去。登记完验证握手ssh -T gityour-git-host-T表示不分配终端只做认证测试。第一次连接会问是否信任主机指纹输 yes。返回一句欢迎信息不同服务端文案不一样就说明通了返回Permission denied (publickey)说明公钥没登记成功或没对上处理办法在下一章。4.2 克隆地址格式不同操作一样SSH 地址和 HTTPS 地址长得不一样SSH 用冒号分隔主机和路径HTTPS 用斜杠git clone gityour-git-host:group/project.git E:/Git/project git clone https://your-git-host/group/project.git E:/Git/project-https第一条是 SSH 形式冒号后面是仓库路径第二条是 HTTPS 形式。末尾参数是本地目录不写就按仓库名建在当前目录下。团队协作项目统一用同一种方式混着用最容易出现“我这边能推你那边不能推”的扯皮。图形界面里操作是在目标文件夹空白处右键 → TortoiseGit → CloneURL 填远程地址Directory 选本地目录确定后弹进度窗。克隆完成后文件夹上会出现角标。角标含义绿色对号与版本库一致无改动红色感叹号文件已修改未提交蓝色加号新增且已加入版本控制蓝色问号未受控文件灰色减号被忽略的文件红色叉号已删除黄色感叹号存在冲突这套角标是 TortoiseGit 最值钱的地方扫一眼目录就知道哪些文件动过。角标不显示的处理在下一章。4.3 提交、拉取、推送顺序别乱固定流程是动手改之前先拉取改完提交到本地提交完再拉一次然后推送。多人协作时跳过任何一步都可能撞冲突。git status # 看当前改动和所在分支 git add Hello.txt README.md # 把指定文件加入暂存区 git commit -m docs: 补充使用说明 # 提交到本地仓库并写说明 git pull --rebase # 把远程新提交拉下来本地提交排到后面 git push origin master # 推送到远程 master 分支git status先看清楚有哪些改动避免误提交临时文件。git add指定文件比git add .安全后者容易把编译产物、日志一起提交上去。git commit -m后面是提交说明团队有规范就按规范写。git pull --rebase里--rebase的作用是把本地未推送的提交挪到远程最新提交之后历史保持一条直线如果团队不允许改写历史去掉这个参数用默认合并方式。git push origin master里origin是远程仓库别名master是分支名克隆时自动建好的。图形界面里对应的是右键 → Git 提交勾选要提交的文件填日志点提交提交成功的提示窗里直接有“推送”按钮。拉取在右键 → Git 同步窗口里点拉取。习惯命令行的人会觉得右键慢但刚从 SVN 转过来的同事用右键菜单上手最快。4.4 冲突看到黄色感叹号之后做三步冲突的表现是文件里出现三行标记、、中间夹着两边的不同内容。这不是坏事说明系统没有替你瞎猜。处理顺序是手工编辑文件把三行标记和不要的内容删掉只留下最终要的版本右键 → TortoiseGit → 解决冲突把文件标记为已解决再提交一次然后推送。git diff --name-only --diff-filterU # 只列出处于冲突状态的文件 git add Hello.txt # 标记为已解决 git commit -m merge: 解决冲突第一条命令里--diff-filterU是过滤器U 表示未合并冲突状态冲突文件多的时候用它快速定位。第二条把改好的文件重新加入暂存区等同于图形界面的“标记为已解决”。第三条完成合并提交。养成改文件前先拉取的习惯冲突概率能降一大半。5. 常见问题排查图标消失、推送被拒、SSH 认证失败这一节全是现场处理过的案例按“现象 → 原因 → 解决”排列遇到问题直接对号入座。5.1 文件夹全是普通图标一个角标都不显示现象克隆成功文件都在但资源管理器里看不到任何角标右键菜单却正常。原因Windows 对图标覆盖处理器的注册数量有上限先注册的占坑后注册的排不上装了几个同步盘或者设计软件之后TortoiseGit 很容易被挤掉另一个常见原因是装完没重启资源管理器覆盖处理器没有重新加载。解决先重启资源管理器用前面那条 taskkill 命令。还不行就进 Settings → Icon Overlays把 Status cache 设为 DefaultOverlays 里确认没有只勾选某个盘符。机器上覆盖类软件太多的把不常用的卸载或者关掉它的角标功能。目录层级太深也会导致状态刷新慢这种等几秒就出来了不是故障。5.2 推送报 403 或 Authentication failed现象拉取正常推送提示 403、HTTP Basic: Access denied或者反复弹认证框但输对了也过不去。原因HTTPS 方式下本地缓存的旧密码被拿去认证或者服务端那边改过密码、开了双因子认证要求用令牌代替密码也可能是这个账号对目标仓库只有读权限没有写权限。解决先删缓存。打开用户目录下的.git-credentials把对应主机那一行删掉再打开 Windows 凭据管理器找对应地址的条目删掉。重新推送按提示输新密码或令牌。如果还是 403去服务端页面确认自己在仓库里的角色是不是只读。5.3 Permission denied (publickey)密钥明明登记了现象克隆或推送报Permission denied (publickey)或者弹No supported authentication methods available。原因TortoiseGit 默认的 SSH 客户端不是 Git 自带的 OpenSSH而是 PuTTY 系的那一套两边的密钥格式不通用OpenSSH 生成的id_rsa它不认另一种情况是地址里的用户名写错了SSH 方式下用户名一般是git不是你的登录名。解决进 Settings → Network把 SSH client 从默认的客户端改成 Git 安装目录下的ssh.exe比如D:\Program Files\Git\usr\bin\ssh.exe。改完再试握手细节可以用ssh -vT gityour-git-host看-v会打印每一步认证过程哪一步被拒一目了然。地址确认写成git主机:组/仓库.git。ssh -vT gityour-git-host-v输出很多重点看最后几行出现Authentications that can continue:之后跟的列表能看出服务端接受哪些认证方式。5.4 界面还是英文Language 里也没有简体中文现象语言包装过了Settings 里 Language 下拉框却没有简体中文选项或者选了之后界面不变。原因语言包位数和主程序不一致或者版本段对不上资源文件加载失败也可能是语言包装到了默认目录而主程序被装到了别的位置。解决核对主程序版本号重新下对应版本的语言包安装时把目标目录改成 TortoiseGit 的实际安装目录。装完重启资源管理器再回 Settings 里选语言。中英混杂的情况通常是版本段接近但不完全一致看上去能用实际只加载了一部分资源直接换成本版本专用的语言包。5.5 克隆空仓库报 Couldnt find remote ref HEAD现象新建的远程仓库克隆时报fatal: Couldnt find remote ref HEAD。原因服务端仓库是空的一个提交都没有没有 HEAD 引用可以拉取客户端不知道要检出什么分支。解决服务端先建一个初始提交网页上初始化 README 就行或者本地先git init建好文件提交一次再添加远程地址推上去远端就有了 HEAD。自建服务端新建仓库时如果提示是否初始化勾上能省这一步。6. 装完怎么验证五步自检与一次端到端闭环装完不做验证等于没装。我的习惯是按顺序跑五步每一步都有明确的期望输出对不上就直接知道该回哪一章。第一步确认命令行的 Git 和 TortoiseGit 用的是同一个。第二步确认 Settings 里语言是简体中文、git.exe 路径指向bin目录。第三步确认全局用户名邮箱写进去了。第四步确认 SSH 握手能通。第五步走一次完整闭环新建文件 → 提交 → 拉取 → 推送 → 去服务端页面确认能看到这次提交。git --version # 期望输出具体版本号 git config --global user.name # 期望输出你的名字 git config --global user.email # 期望输出你的邮箱 ssh -T gityour-git-host # 期望输出欢迎信息不是 Permission denied git ls-remote gityour-git-host:group/project.git # 期望输出远程分支的哈希列表最后那条git ls-remote是最省事的连通性检查它只读远程引用不写本地目录能通说明地址、密钥、权限三样全对。把它加进装机清单比克隆一个几百兆的仓库去试快得多。检查项期望结果不通过时看git --version输出版本号第 2.2 节 PATH 选择Settings 语言与路径界面中文、路径指向 bin第 3.2 节、第 5.4 节user.name 与 user.email输出配置值第 3.3 节ssh -T 握手输出欢迎信息第 5.3 节ls-remote 读远程引用输出分支哈希第 5.2 节、第 5.5 节走完这五步再打开资源管理器看一眼角标是不是齐的齐了就说明整套环境闭环了。不齐但不影响命令操作可以回头照第 5.1 节处理别为了一个图标重装整套环境。从那以后我每装一台新机器都强制把这五步走一遍宁可多花五分钟也不要在交付前一晚对着一堆没有角标的文件夹猜哪里坏了。踩过的坑记下来下次装机就只是照着敲几条命令的事。希望帮到你。本文还有配套的精品资源点击获取