
简介面向 Windows 平台、希望以图形化方式掌握 Git 的初学者与日常开发者TortoiseGit 使用教程以图文结合形式梳理这款右键菜单集成工具的核心用法帮助不熟悉命令行的读者降低版本控制上手门槛。文档围绕安装后的基础配置、用户身份与凭证保存、SSH Key 准备、HTTPS 与 SSH 两种连接方式的差异以及克隆、拉取、合并、提交、推送和分支管理等常见场景展开并对文件状态角标的含义作了说明便于读者理解仓库中各类标记。压缩包内共 1 个 docx 文件约 1.15MB单文档结构紧凑适合通勤或碎片时间查阅。目前已有 2150 人学习可作为 TortoiseGit 入门与日常协作的速查参考也能帮助读者在图形界面与 Git 概念之间建立对应关系。1. 装 TortoiseGit 之前先把顺序搞对上周帮一位刚转到 Windows 上做开发的同事收拾新机器他把 TortoiseGit 装完右键菜单里 Clone 和 Commit 全是灰的点开 Settings 想把界面改成中文Language 下拉里只有 English。后来才发现是两个问题叠在一起TortoiseGit 的安装比 Git 早它找不到git.exe语言包下的版本又和主程序差了一个小版本号。Windows 上这套 Git TortoiseGit 中文语言包的三件套几乎是团队标配一份靠谱的 TortoiseGit 使用教程不难写难的是每一步都落在正确的顺序、版本和路径上。这份 Git 图文教程面向第一次在 Windows 上配图形界面 Git 的开发者也照顾那些装过几次、但每次都要重新确认「git.exe 到底填 bin 还是 cmd」的熟手。整套流程在普通办公机上十几分钟能走完装错了却可能要重装两遍才能恢复。2. 安装顺序与版本对齐Git 先装小乌龟后装语言包最后这三样东西的依赖关系是单向的TortoiseGit 是 Git 的图形外壳它自己不带 Git 内核中文语言包是 TortoiseGit 的附属 DLL它必须挂在一个版本号完全一致的主程序上。顺序反了TortoiseGit 装完会提示找不到可执行文件语言包版本错了界面会一半中文一半英文甚至设置对话框打不开。所以安装顺序固定为「Git for Windows → TortoiseGit → 中文语言包」中间不要插入任何重启以外的操作。2.1 Git for Windows 的下载与安装选项Git for Windows 从它的官方项目页下载页面上标着最新稳定版的那个安装包就是文件名形如Git-x.x.x-64-bit.exe。安装过程大部分是下一步但有四个页面值得停下来看一眼它们决定了后面 TortoiseGit 能不能顺利接管。第一个是 PATH 环境变量页三个选项里选中间那个「Git from the command line and also from 3rd-party software」。选第一个只用 Git Bash会导致在 CMD 和 PowerShell 里敲git提示找不到命令选第三个会把一堆 Unix 工具塞进系统 PATH容易和已有的命令打架。第二个是换行符处理页。Windows 用 CRLF仓库里一般存 LF。默认的「Checkout Windows-style, commit Unix-style」是绝大多数团队的选择它会在检出时转成 CRLF、提交时转回 LF。如果团队里有 macOS 或 Linux 成员且仓库里已经有.gitattributes明确规定了换行策略那选哪个影响都不大没有配置文件又选了「Checkout as-is」第一次提交就会出现整文件 diff 的惨状。第三个是 HTTPS 传输后端OpenSSL 和 Windows 原生安全通道二选一。常见做法是保持默认的 OpenSSL它和后面要配的凭证助手配合最稳只有在公司网络强制走系统证书链时才换原生那个。第四个是终端模拟器选 MinTTY 就行它跟 TortoiseGit 关系不大。安装路径建议不要带空格和中文D:\Program Files\Git这种带空格的路径本身能用但个别老版本的 TortoiseGit 在调git.exe时对引号处理不严会出现「找不到文件」的假报错。我一般装到D:\Dev\Git省掉后面排查路径的功夫。装完先验一下开一个 CMD 窗口git --version where git第一行确认版本号能打印出来第二行确认系统找到的git.exe只有一处。如果where git打出两行以上说明机器上还残留着旧版 Git 或者某个 IDE 自带的 Git这在后面配 TortoiseGit 的路径时会引起「明明配了却不生效」的玄学问题建议先把多余的从 PATH 里摘掉。2.2 TortoiseGit 安装向导里两个必须停一下的页面TortoiseGit 的安装包同样从官方项目页取注意它分 32 位和 64 位现在基本都是 64 位。向导里绝大多数页面可以直接下一步但有两处要停下来。第一处是 SSH 客户端选择页选项通常是「TortoisePlink」和「OpenSSH」。这个选择不是随便点的它决定了你后面用 SSH 方式克隆时走哪套密钥。TortoisePlink 是 PuTTY 系的工具只认.ppk格式的私钥OpenSSH 认id_rsa这种标准格式。现在主流做法是用 OpenSSH因为ssh-keygen生成的就是标准格式和命令行、CI 环境完全通用。如果你选错了后面用 SSH 克隆会稳定地报Disconnected: No supported authentication methods available看起来像密钥没配好其实是客户端不认这个格式。第二处是安装向导最后一页的「Run first start wizard」勾选框。第一次装可以勾上它会引导你走一遍语言和用户配置但如果你打算按下一章的顺序手动配这里取消掉更干净避免它在你还没装语言包的时候就把语言锁成英文。安装目录要与 Git 的目录区分开别图省事装进 Git 目录里。TortoiseGit 会往资源管理器里注册 shell 扩展装错目录卸载时容易留下残留在右键菜单里的死条目。2.3 语言包版本号必须与主程序完全一致中文语言包是最容易被轻视的一步。它的文件名里带三段版本号比如主程序是 2.15.0语言包就必须是 2.15.0差一位都不行。版本不匹配时的表现很典型设置对话框里部分文字变成问号、菜单项显示成空白、或者干脆点开 Settings 就闪退。安装语言包时安装程序会自动定位 TortoiseGit 的主目录正常情况下直接下一步即可。如果它提示找不到安装位置说明主程序装在了非默认路径需要手动指到 TortoiseGit 的安装根目录不是bin子目录。装完语言包不要急着开设置界面。先把已经打开的资源管理器窗口全部关掉因为 shell 扩展是随资源管理器进程加载的旧进程里还是老的 DLL。稳妥的做法是在任务管理器里重启「Windows 资源管理器」或者在命令行执行taskkill /f /im explorer.exe start explorer.exe这条命令强制结束并重新拉起资源管理器进程让新的语言包 DLL 重新加载。执行时桌面会闪一下属于正常现象。很多人装完语言包发现界面还是英文就是因为旧进程没退重启一次机器也能解决但没必要。3. 首次配置三项语言、git.exe 路径、用户身份装完之后TortoiseGit 需要在某个目录下被「唤醒」一次才会读取配置。这一步的顺序也有讲究先建一个专门放代码的根目录在这个目录里打开设置改完再进具体项目。这样全局配置和局部配置的边界从一开始就是清楚的。3.1 建代码根目录在正确的位置打开 Settings先在磁盘上建一个专门存放所有 Git 项目的目录比如E:\Git。这个目录本身不是仓库只是用来归类。以后所有克隆下来的项目都放在它下面找起来方便也避免把仓库散落在桌面和下载文件夹里。在这个目录的空白处右键菜单里会有TortoiseGit子项展开选Settings。注意右键的位置很关键在文件夹空白处右键和在某个文件上右键出来的菜单项不一样在已经是 Git 仓库的目录里右键Settings 里还会多出局部配置的入口。第一次配置建议就在这个「干净的根目录」里做改的全是全局配置不会误改某个项目。打开设置窗口后左侧是一列树形分类。真正需要动的只有General和Git两项其余保持默认即可。有些教程会让你去改Icon Overlays和Network那是排障时才需要的初次安装不用碰。3.2 General 页三件事语言、git.exe 路径、升级检查General页右侧最上面是 Language 下拉框装了语言包之后这里会出现「中文(简体)」。选中它界面不会立刻变要点下面的 Apply 才生效。如果下拉框里只有 English回到 2.3 检查语言包版本和资源管理器是否重启过不要在这一页反复点。同一页往下是 Git.exe Path 输入框这是整个配置里最容易填错的一项。它要的是git.exe所在的目录不是 Git 的安装根目录也不是cmd目录。按第 2 章装到D:\Dev\Git的话这里就填D:\Dev\Git\bin也可以在对话框里点 Browse 选过去。判断填对没有看设置窗口底部那行版本信息它会显示识别到的 Git 版本号如果显示为空或者报错就是路径指错了层。老版本 TortoiseGit 有的要求指到cmd目录那是因为早期安装包里git.exe的布局不同现在的版本统一指bin指cmd反而会认到一个包装脚本。再往下是升级检查的复选框原文明确要求取消勾选。理由很实际这个检查会在每次打开设置或某些操作时去连外网公司内网环境下会卡住几秒甚至弹超时提示而且它检查到新版本后只会弹窗不会自动升级。取消掉升级这件事改成手工做心里有数。三项改完点 Apply再点 OK 关闭。注意 Apply 和 OK 有区别Apply 保存但不关窗OK 保存并关闭。语言项只有在 Apply 之后才会重新加载界面所以顺序上建议先选语言、Apply再去改路径。3.3 Git 页的用户身份与全局、局部配置的区别切到左侧的Git分类右侧上半部分是 Name 和 Email 两个输入框。这不是登录账号是写进每次提交记录里的作者标识随便填会导致提交历史里的作者是一串乱码后面想按人筛选提交记录就废了。填真实可辨识的名字和常用邮箱即可格式上没有强制要求。这两个框改了之后等价于在命令行执行git config --global user.name 你的名字 git config --global user.email youexample.com如果嫌对话框填着麻烦直接在 Git Bash 里敲这两行效果完全一样TortoiseGit 读的是同一份配置文件。这一页下半部分有两个按钮「编辑全局 .git/config(O)」和「编辑本地 .git/config(L)」。前者任何时候都可点后者只有在当前目录是一个 Git 仓库时才从灰色变可用。这个灰/亮的差别恰好说明了全局配置和局部配置的关系全局配置存在用户主目录下的.gitconfig里对所有仓库生效局部配置存在项目目录下的.git/config里只对这个项目生效并且优先级高于全局。原文提到「本地」这个翻译其实有点误导叫「局部」更准确。实际使用中局部配置最常见的用途是覆盖用户名——比如公司项目要用公司邮箱、开源项目要用个人邮箱就在对应仓库里单独设一次。至于其他配置项能用全局就别用局部散落在各个.git/config里的设置过半年自己都想不起来。4. 凭证与 SSH KeyHTTPS 记住密码和 SSH 免密两条路克隆和推送时反复被要求输账号密码是新手放弃命令行的头号原因。TortoiseGit 给了两条路HTTPS 配凭证助手把用户名密码存到本地文件SSH 配密钥对一次配置长期免密。两条路都能走通区别在于安全边界和维护成本。4.1 credential.helper store 的配置和它的明文代价在Git页点「编辑全局 .git/config(O)」会用记事本打开全局配置文件。在文件末尾追加两行[credential] helper store注意[credential]是段名helper store是这一段的键值前面用 Tab 或空格缩进都行但段名必须单独一行用方括号包住。加在文件最末尾最安全不要插到已有的[user]段中间去否则会被解析成 user 段的子项配置直接失效。保存关闭回到设置窗口点确定。此后用 HTTPS URL 推送时输入一次用户名密码TortoiseGit 就会记住。它的实现方式是把凭证写到用户主目录下的.git-credentials文件里内容是明文的形如https://username:passwordyour-git-host这就是store这个助手的全部逻辑——没有加密没有系统密钥链。原文特意提醒「请小心保存」这个提醒是认真的任何人拿到这个文件就能以你的身份推送代码。个人开发机问题不大公用机器、共享账号、临时借用的电脑上绝对不要开。需要撤销的时候把.git-credentials里对应的那行删掉或者把helper store改成helper 清空也可以换成系统自带的凭证管理器。改完记得在 TortoiseGit 里重新触发一次认证它不会主动去清已缓存的凭证。局部配置里也能写同样的内容只对单个项目生效适合「大部分项目用 A 账号、个别项目用 B 账号」的情况。配置语法完全一样只是写在项目目录的.git/config里。4.2 用 ssh-keygen 生成密钥并填进服务器SSH 方式的前置条件是本地有一对密钥公钥填到服务器上。先看有没有现成的打开用户主目录C:\Users\你的用户名看有没有.ssh文件夹里面有没有id_rsa和id_rsa.pub。两个都在就直接跳到填公钥那步不要重复生成覆盖掉那会让已经在用的其他服务全部失效。没有的话用 Git Bash 生成比用图形界面稳ssh-keygen -t rsa -b 4096 -C youexample.com-t rsa指定密钥类型-b 4096指定长度-C后面是注释通常写邮箱方便在服务器端一堆公钥里认出这是谁的。执行后会问保存路径直接回车用默认的~/.ssh/id_rsa再问一次密码短语个人机器上可以留空直接回车留空就是完全免密设了密码就是每次用密钥时再输一次这个短语——安全性更高但离「一劳永逸」远了一步。两种都合理看机器是不是自己独占。生成完用下面的命令把公钥内容打出来cat ~/.ssh/id_rsa.pub输出是一整行以ssh-rsa开头、以注释结尾复制时必须整行复制中间不能有换行。用记事本复制容易在末尾多带一个回车粘到服务器上会提示格式错误所以尽量在终端里选中复制。私钥id_rsa不外传公钥id_rsa.pub随便给。这个关系不能反反了等于把家门钥匙贴在公司公告栏上。填公钥的位置在服务器端的用户设置里一般在「SSH 密钥」或「SSH Keys」这样的菜单下点新增把整行粘进去保存。自建的 Git 服务和托管平台都有这个入口位置大同小异。填完立刻生效不需要重启服务。4.3 克隆HTTPS 与 SSH 的 URL 写法差异同一个仓库两种协议给出的 URL 长得不一样方式URL 形态认证适用场景HTTPShttps://host/group/project.git账号密码或访问令牌只读拉取、临时机器、公司网络限制 SSH 端口SSHgithost:group/project.git密钥对日常开发、需要频繁推送HTTPS 的优点是什么都不用配复制来就能克隆缺点是每次 fetch 和 push 都要认证除非开了 4.1 的凭证助手。SSH 的优点是配好之后长期免密缺点是必须先有公钥在服务器上而且只有项目成员才能加——公钥是绑在你账号上的没有账号权限的人加不了。在资源管理器空白处右键选Git 克隆URL 填对应的地址目录选到第 3 章建的根目录下面点确定。克隆窗口会显示对象计数和接收进度。如果服务器端是个空仓库一个文件都没有克隆会报fatal: Couldnt find remote ref HEAD这不是配置错是仓库里确实没东西——先在服务器端建一个初始文件比如 README再克隆。克隆完成后文件夹图标上会出现角标。如果什么角标都没有先别怀疑克隆失败去看第 5 章第一条。5. 避坑排查五条真踩过的记录5.1 克隆成功了但文件夹上没有绿色角标现象仓库能正常提交、推送但资源管理器里所有文件和文件夹都没有任何状态角标看起来跟普通文件夹一样。原因Windows 对图标覆盖icon overlay的数量有硬限制整个系统最多只认十几个覆盖标识而且是按注册表里的加载顺序抢位的。装了网盘同步客户端、其他版本控制工具之后它们会把自己的覆盖标识排在前面TortoiseGit 的就被挤掉了一个都显示不出来。解决打开 TortoiseGit 设置里的Icon Overlays页确认「Status cache」不是 None然后在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers下把 TortoiseGit 相关的项改名在前面加空格或数字让它们排到最前重启资源管理器。最省事的办法是卸载掉不用的同步客户端直接腾出位置。5.2 右键菜单里 TortoiseGit 的项全是灰的现象右键能看到 TortoiseGit 子菜单但 Clone、Commit、Push 全是灰色不可点。原因TortoiseGit 没找到可用的git.exe或者找到的是个不完整的版本。常见于先装 TortoiseGit 后装 Git或者 Git 装在带空格的路径下而 TortoiseGit 版本较老。解决进 Settings 的General页把 Git.exe Path 改成 Git 安装目录下的bin点 Apply 后看窗口底部有没有显示出 Git 版本号。没有就换cmd目录再试一次两个都不行就用 Browse 直接选到git.exe文件本身看看文件名拼写。改完关闭所有资源管理器窗口重开。5.3 用 SSH 克隆报 No supported authentication methods available现象HTTPS 能克隆换成 SSH URL 后报Disconnected: No supported authentication methods available (server sent: publickey)。原因TortoiseGit 的 SSH 客户端设成了 TortoisePlink而本地的密钥是ssh-keygen生成的标准 OpenSSH 格式PuTTY 系工具只认.ppk。也可能是公钥根本没填到服务器上或者填的时候末尾多了换行导致整行失效。解决进 Settings 的Network页把 SSH client 从 TortoisePlink 改成ssh.exe的完整路径Git 安装目录下usr\bin\ssh.exe。改完再试如果还报同样的错用ssh -T gityour-git-host单独测一次这条命令会明确告诉你是认证被拒还是网络不通。5.4 配了 helper store推送还是要输密码现象全局配置里明明加了[credential] helper store第一次推送输了密码第二次照样弹框。原因三种可能。一是配置写错了位置比如插进了别的段中间git config --global --get credential.helper查出来是空的二是 URL 里本身带了用户名形如https://userhost/...这种情况下凭证助手的行为会异常三是机器上同时装了别的 Git比如某个 IDE 自带的实际执行推送的是另一个git.exe读的是另一份配置。解决先用git config --global --get credential.helper确认读出的是store读不出就重新用命令行写一遍。再检查克隆时用的 URL 有没有带用户名。最后用where git确认系统里只有一个git.exe。5.5 拉取时提示冲突不知道从哪下手现象点「拉取」之后弹出冲突提示仓库里多出一堆带问号或感叹号角标的文件。原因本地改动的文件和服务器上新提交的改动落在同一片区域Git 无法自动合并。多人协作时不先拉取就直接改代码是造成这种情况最常见的原因。解决TortoiseGit 会弹出冲突解决窗口逐个文件选「使用我的」「使用他们的」或者手工编辑合并结果处理完标记为已解决再提交一次。养成习惯比事后补救重要每次动手改代码之前先拉一次改完提交前再拉一次冲突的概率会低很多。6. 装完怎么验证从克隆走到推送的闭环配置完不等于配好了得跑一遍完整链路才算数。我习惯用一个小仓库做验证从零走一遍克隆、改动、提交、拉取、推送五步都能过这套环境才算真的可用。第一步在空的根目录右键克隆一个测试仓库用你日常会用的那种 URLHTTPS 或 SSH。克隆完成后进目录随便改一个已有文件的内容保存。第二步退回上一级目录再进来看角标变化。这时候文件应该是红色感叹号表示已修改未提交新建一个Hello.txt它应该是蓝色加号。角标能正确反映状态说明 5.1 那条坑你没踩。角标含义绿色对号文件与版本库一致无改动红色感叹号已修改未提交蓝色加号新添加未纳入版本控制蓝色问号未受控文件灰色减号已被忽略红色叉号已删除黄色感叹号存在冲突第三步右键选Git 提交 - master填提交说明勾上要提交的文件点提交。提交只写本地仓库这一步不涉及网络失败的话基本是用户身份没配第 3.3 节。第四步右键选Git 同步在同步窗口里先点「拉取」。拉取正常说明认证通了、网络通了。如果这里弹冲突说明你改的文件在服务器上也被改过按 5.5 处理。第五步点「推送」。SSH 方式应该直接成功不弹框HTTPS 方式第一次会要账号密码输完再推一次确认它记住了。推完去服务器网页上看一眼提交记录能看到你刚才那条说明作者名和邮箱显示正确全链路就闭环了。这套验证我固定会做因为有三类问题只在推送时暴露SSH 客户端选错、凭证助手作用域不对、账号没有写权限。前两类在前面的配置章节都能提前规避第三类只能靠实际推一次才知道——有时候克隆权限和推送权限是分开配的能拉不能推报错信息还相当含糊。从那以后我每次装完这套环境都强制自己走一遍这五步哪怕机器是临时用的、只打算拉个代码看一眼。宁可多花三分钟也不想在赶着发版的时候才发现推送没权限。希望帮到你。本文还有配套的精品资源点击获取