简介TortoiseGit 使用教程面向 Windows 平台下刚接触版本控制的开发者与 Git 初学者帮助其借助图形化右键菜单替代命令行降低 Git 上手门槛。文档围绕下载安装 Git 与 TortoiseGit、中文界面与用户信息配置、凭证助手与 SSH Key 设置、HTTPS 与 SSH 两种克隆方式对比以及克隆、拉取、合并、提交、推送和分支管理等常用操作展开并附有文件状态角标含义说明与常见问题提示便于读者按图索骥完成环境搭建与日常协作。资源包共 1 个 docx 文件约 1.15MB以图文步骤形式组织内容适合边看边练。目前已有 2152 人学习可作为 Windows 下 Git 图形化入门的参考手册也便于团队内部培训时统一操作规范。1. 右键菜单里的 Git一份能照着走完的 TortoiseGit 图文教程Windows 上装完 Git 之后命令行里敲git status看一堆英文输出对刚接手版本控制的人来说并不友好。TortoiseGit 这个资源解决的正是这个断层它把 clone、commit、pull、push 这些操作挂到资源管理器的右键菜单上文件状态用角标直接标出来绿色对号、红色感叹号、蓝色加号一眼能认。这份教程从 Git 与 TortoiseGit 的安装顺序讲起覆盖中文语言包配置、用户名邮箱设置、HTTPS 与 SSH 两种连接方式的选择、SSH Key 的生成与上传一直到克隆、提交、拉取、推送的完整闭环。适合刚在 Windows 上做团队协作开发、需要把代码托管到远程仓库的从业者也适合带新人时当一份可复现的操作底稿。2. 装对顺序与全局配置Git 打底TortoiseGit 只是壳2.1 为什么必须先装 Git 再装 TortoiseGitTortoiseGit 本身不带 Git 内核它是一层图形外壳所有实际操作最终都转成对git.exe的调用。所以安装顺序不能反先装 Git for Windows再装 TortoiseGit 主程序最后装中文语言包。顺序装反的典型后果是 TortoiseGit 启动后找不到 git.exe右键菜单能出来但点克隆直接报错。安装 Git 时有一个选项值得留意就是 PATH 环境变量的处理。默认选项会把 Git 的命令行工具加进系统 PATH这样后续在 TortoiseGit 设置里指定 git.exe 路径时直接填D:\Program Files\Git\bin这类目录即可。安装路径建议不要带空格和中文虽然现在多数工具都能处理但一旦出问题排查成本很高血泪经验是路径越干净越省事。TortoiseGit 安装过程中会询问是否已经安装 Git如果前面装好了就选已安装安装器会自动探测路径。中文语言包是一个独立的 msi装完之后还要在设置里手动切换语言不是装完就自动变中文。2.2 全局设置里的四个关键项装完之后选定一个专门存放 Git 项目的目录比如E:\Git在这个目录空白处右键进 TortoiseGit 的 Settings。配置界面左侧是一列标签右侧是对应内容需要动的主要是下面几项。第一项是 General 里的 Language下拉选简体中文。同一页面还有一个升级检查的复选框建议取消勾选否则每次右键操作都可能弹一次版本检查干扰操作节奏。第二项是 General 里的 Git.exe 路径。如果安装时 PATH 配好了这里通常已经自动填上如果显示为空或者路径不对手动指到 Git 安装目录下的bin文件夹注意是bin不是cmd指向cmd会导致部分操作行为异常。第三项是 Git 标签页里的用户名和 Email。这两项是提交记录里的身份标识会写进每一条 commit 的 author 字段团队协作时别人看日志就靠这个认人。填错不影响本地提交但推到远程之后历史记录里就是错的改起来要重写历史很麻烦。第四项是凭证处理。教程里给的做法是在全局.git/config里加一段[credential] helper store这段配置的作用是让 Git 把 HTTPS 方式推送时输入的用户名和密码存到用户目录下的.git-credentials文件里下次不再询问。逻辑说明helper store是 Git 内置的凭证助手之一属于明文存储方案写入位置在C:\Users\用户名\.git-credentials。参数说明等号右边还可以换成managerWindows 凭据管理器加密存储或cache --timeout3600内存缓存一小时。教程选store是因为它跨平台、行为最直观但明文保存这件事必须心里有数共享机器上不要用。提示全局配置对所有仓库生效如果某个项目要用不同的身份在该项目目录下右键进 Settings点「编辑本地 .git/config」只对这个仓库生效。教程里提到「本地」这个翻译容易误解它指的是局部配置不是本机配置。2.3 用命令行核对配置是否真的写进去了图形界面点完之后建议开一个命令行核对一遍避免设置没保存成功却以为配好了git config --global --list这条命令列出全局配置的所有键值。重点看三项user.name、user.email是否存在且拼写正确credential.helper是否为store。如果列表里没有说明前面的图形操作没落到配置文件上回到 Settings 重新点一次应用。参数说明--global表示读全局配置去掉它读的是当前目录所在仓库的局部配置加--system读系统级配置。三层配置的优先级是局部高于全局高于系统排查「为什么我的设置不生效」时按这个顺序往上找。3. HTTPS 还是 SSH连接方式选型与 SSH Key 落地3.1 两种 URL 的差别到底在哪克隆远程仓库时URL 有两种形态。HTTPS 形态长这样https://某代码托管域名/用户名/仓库名.gitSSH 形态长这样git某代码托管域名:用户名/仓库名.git。教程里把两者的取舍讲得比较清楚这里补一层实操视角。HTTPS 的优势是零配置复制 URL 就能克隆适合只读场景或者临时拉一份代码看看。代价是每次 fetch 和 push 都要带凭证虽然前面配了store能记住但密码一改就得清掉.git-credentials重来。SSH 的优势是配一次公钥之后长期免密且身份验证基于密钥对而不是密码安全性更高。代价是必须先有仓库的写权限才能把公钥挂上去纯旁观者用不了。选型建议按场景走自己搭的 Git 服务、公司内部仓库、需要频繁推送的项目一律走 SSH只是临时下载别人的开源项目看看代码HTTPS 更省事。教程正文里两种都演示了克隆 GitHub 仓库和克隆自建 Gitblit 仓库各走一遍这个安排是合理的因为两边的公钥配置入口不一样。3.2 生成 SSH Key 并确认文件位置先检查本机有没有现成的密钥对。打开用户主目录下的.ssh文件夹看有没有id_rsa和id_rsa.pub两个文件。有就直接跳到上传那一步没有就生成。教程给的是图形化路径任意文件夹右键选 Git GUI Here菜单里 Help 下的 Show SSH Key没有 Key 就点 Generate Key。生成过程会要求鼠标在窗口里随机移动来采集熵这是 RSA 密钥生成需要随机源的正常行为不是玄学。生成完把公钥内容整段复制出来。命令行方式更可控也方便脚本化ssh-keygen -t rsa -b 4096 -C your_emailexample.com逻辑说明-t rsa指定密钥类型-b 4096指定位数-C是注释字段一般填邮箱方便在服务器端辨认这把钥匙属于谁。执行后会连续问三个问题保存路径直接回车用默认的~/.ssh/id_rsa、口令可以留空留空则使用时不再询问、确认口令。参数说明位数不是越大越好4096 位 RSA 在兼容性和安全性之间比较平衡如果所在环境支持也可以考虑-t ed25519密钥更短、签名更快但老版本服务端可能不认。生成后两个文件的角色必须分清id_rsa是私钥留在本机任何情况下不外传id_rsa.pub是公钥内容可以公开就是要贴到服务器上的那一段。把私钥误传上去是典型翻车场景一旦发生要立刻在服务端删掉对应公钥并重新生成密钥对。3.3 把公钥挂到服务端并验证连通公钥上传的入口因服务端而异。教程里给了两个例子一类是托管平台进账户设置的 SSH 相关页面新建一条把公钥整段粘进去保存另一类是自建的 Gitblit登录后进用户中心的 SSH Keys 页面添加。操作路径不同本质一样服务端存下你的公钥之后你用私钥签名服务端用存着的公钥验签验过就认你是你。上传之后不要急着克隆先用一条命令验证握手是否通ssh -T git某代码托管域名逻辑说明-T表示不分配终端只做认证测试。返回内容通常是一句欢迎语或者权限提示只要不是Permission denied (publickey)就说明密钥配对成功。参数说明如果服务端 SSH 端口不是默认的 22需要在~/.ssh/config里为该域名单独指定端口和密钥文件否则连接会超时或者用错钥匙。这一步失败时按顺序排查公钥内容是否完整复制首尾不能缺字符、服务端是否保存成功、本机~/.ssh目录权限是否过宽部分环境要求目录 700、私钥 600、是否连到了错误的端口。多数Permission denied都是公钥没贴全或者贴错了账号。3.4 克隆的两种入口与角标含义克隆操作在资源管理器空白处右键选 Git 克隆URL 填 SSH 或 HTTPS 地址本地目录选好确定后弹进度窗口。教程里提了一个容易忽略的报错服务端仓库至少要有一个文件否则拉取时会报fatal: Couldnt find remote ref HEAD。原因是空仓库没有 HEAD 引用克隆方拿不到默认分支指针。解决办法是在服务端先初始化一个 README 或者首次提交再克隆。克隆成功后文件夹上会出现角标这套角标是 TortoiseGit 最实用的部分值得背下来角标含义常见触发场景绿色对号文件与版本库一致刚克隆完、刚提交完红色感叹号文件被修改未提交编辑了内容还没 commit蓝色加号新增且已纳入版本控制新建文件后执行了添加蓝色问号未受控文件新建文件还没添加灰色减号被忽略的文件命中 .gitignore 规则红色叉号已删除文件被删且变更已暂存黄色感叹号存在冲突合并或拉取产生冲突未解决角标不显示是另一个高频问题通常是资源管理器图标覆盖项被系统限制或者被其他同步软件抢占排查方向是注册表里的图标覆盖数量上限和冲突软件不是 TortoiseGit 本身坏了。4. 提交、拉取、推送一条能跑通的日常闭环4.1 提交到本地仓库的正确姿势日常流程的第一步是改动文件比如改 README、加一个 Hello.txt。改完在项目空白处右键选 Git 提交。提交对话框分三块上方是提交说明中间是变更文件列表带勾选框下方是差异预览。勾选要提交的文件写清楚说明点提交。这里有个细节提交只进本地仓库远程仓库此时没有任何变化。很多人第一次用会以为点了提交就完事了结果同事拉不到代码问题就出在这一步。教程把提交和推送分成两步讲是对的这个区分必须建立起来。提交说明的写法没有强制规范但团队里一般要求一句话说清改了什么、为什么改。空说明或者「update」这类提交在回溯问题时基本没有价值属于给自己埋坑。4.2 推送之前先拉取冲突才不会找上门教程强调的顺序是提交本地之后、推送之前先做一次同步拉取。原因是多人协作时远程可能已经有别人的提交你直接推会被拒绝或者更糟本地和远程分叉。操作路径是右键选 Git 同步打开同步窗口点拉取。如果远程没有新提交提示已是最新直接进下一步推送。如果远程有新提交且和你改的文件不重叠拉取会自动合并。如果改到了同一处就会报冲突文件角标变黄色感叹号。冲突处理的思路是打开冲突文件找到、、三组标记之间的两段内容人工决定保留哪段或者怎么合并删掉标记保存然后重新提交。TortoiseGit 提供冲突编辑器和「解决冲突」菜单项本质就是帮你定位这些标记。解决完必须再提交一次冲突状态才会清除。注意修改本地文件之前先拉取一次能大幅降低冲突概率。这个习惯和用 TFS、SVN 时是一样的换到 Git 上很多人反而忘了。4.3 推送与凭证输入的实际表现推送入口有三个提交成功后的提示窗口上直接点推送、同步窗口里点推送、右键菜单里选推送。三个入口效果一样弹窗里一般保持默认分支设置点确定。如果走 HTTPS 且没配凭证助手此时会依次要求输入用户名和密码。用户名是托管平台的账号名不是前面配置的 user.name这两个概念经常被混淆。密码输入正确后显示推送成功。如果前面配了helper store这次输入会被记住下次不再问。如果走 SSH 且公钥配好了推送全程不弹凭证框直接完成。这就是前面花时间配密钥的回报。推送被拒绝时先看提示如果是non-fast-forward说明远程有你本地没有的提交先拉取再推如果是权限相关回去检查公钥或者账号权限如果是网络超时检查仓库地址和端口。不要一看到失败就强推强推会覆盖远程历史团队协作里属于高危操作。4.4 分支的创建与切换教程在提交对话框里提到可以顺手新建分支这里补一下分支的日常用法。右键菜单里有切换/检出、创建分支、合并等入口。新建分支适合在动大改动之前开一条隔离线改坏了切回主分支即可不影响主线。切换分支前确保当前工作区是干净的也就是没有未提交的修改否则切换时可能带着改动过去或者被拒绝。合并分支时如果两边都改过同一文件同样会走冲突解决流程。分支管理这块图形界面比命令行直观能看到分支列表和当前所在分支新手不容易迷路。5. 避坑清单角标、凭证与冲突的五个真实翻车点5.1 角标全不显示以为没装成功现象装完 TortoiseGit文件夹上干干净净没有任何状态图标但右键菜单正常。原因Windows 资源管理器的图标覆盖项有数量上限系统里装了其他同步或云盘类软件时它们可能占满了名额TortoiseGit 的覆盖图标排不进去。也可能是安装时没勾选图标覆盖组件。解决先卸载或调整其他占用图标覆盖的软件重启资源管理器仍不显示就重装 TortoiseGit 并确认勾选图标覆盖相关组件。注册表里可以调整覆盖项顺序但改之前先备份这一步属于后悔药范畴能不碰就不碰。5.2 推送一直要密码配了 store 也没用现象按教程加了[credential] helper store推送时仍然每次弹框要账号密码。原因配置写到了局部.git/config而不是全局或者写完之后没保存、缩进格式不对导致解析失败。还有一种情况是仓库 URL 从 HTTPS 换成了 SSH凭证助手对 SSH 不生效SSH 走的是密钥认证。解决用git config --global --list确认credential.helper确实存在检查配置文件里[credential]段和helper行的缩进确认当前仓库用的是 HTTPS URL。如果已经存了旧密码删掉C:\Users\用户名\.git-credentials里对应行再重新推送。5.3 克隆报 Couldnt find remote ref HEAD现象URL 填对了权限也有克隆却直接失败提示找不到远程 HEAD 引用。原因远程仓库是空的一次提交都没有没有默认分支指针可拉。解决在服务端先做一次初始提交比如建一个 README 文件提交上去再回来克隆。自建 Git 服务新建仓库时如果有「初始化仓库」选项勾上即可避免这个问题。5.4 拉取后满屏冲突标记不敢动现象拉取之后文件里出现一堆符号角标变黄提交被拦住。原因本地和远程改到了同一文件的同一区域Git 无法自动判断保留哪边把决定权交给人。解决逐个打开冲突文件按业务意图保留或合并两段内容删掉所有冲突标记行保存后在右键菜单里标记为已解决再提交一次。不要直接删文件重来那样会丢掉别人的改动。冲突多的时候先看清楚每处标记的上下两段分别来自哪边再动手。5.5 提交成功但同事拉不到代码现象本地提交记录都在日志也正常同事那边拉取却没有任何更新。原因只做了本地提交没有推送。提交和推送是两个动作前者写本地仓库后者才同步到远程。解决右键选推送把本地提交推上去。养成习惯提交完立刻看一眼同步窗口里本地和远程的提交数差异差值为正就说明还有没推的提交。6. 把 SSH 免密和凭证安全做成固定动作走到这里日常闭环已经能跑通剩下值得花时间的是把 SSH 这条线彻底做扎实因为它决定了你未来几年推送代码时要不要反复输密码。我的做法是给每台开发机生成独立的密钥对注释里带上机器标识这样服务端公钥列表里一眼能看出哪把钥匙属于哪台机器某台机器不用了直接删对应公钥不影响其他机器。密钥生成之后把公钥上传这一步做成检查清单复制内容时确认首尾完整上传后立刻用ssh -T验证验证通过再开始克隆。这个顺序看起来多花两分钟但能避免后面在克隆报错里绕半小时。私钥文件的权限也要顺手确认Linux 子系统和部分 Windows 环境下权限过宽会导致密钥被拒绝使用表现为莫名其妙的认证失败。凭证安全上helper store的明文存储只适合个人独占的开发机。多人共用或者安全要求高的环境换成 Windows 凭据管理器方案更稳妥git config --global credential.helper manager逻辑说明这条命令把凭证助手切换为凭据管理器密码由系统加密保存不再以明文落在用户目录。参数说明不同 Git 版本里这个助手的名字可能是manager或manager-core切换后第一次推送会弹出一个认证窗口按提示登录一次即可。切换前记得清掉旧的.git-credentials文件否则旧凭证可能仍然生效造成「改了配置但行为没变」的困惑。还有一个容易被忽略的点是全局身份和单仓库身份的区分。公司项目和个人项目用不同邮箱时不要图省事全局改来改去直接在对应仓库里设局部配置git config user.email不带--global就是只改当前仓库。这样提交历史里的身份永远是对的不用事后返工。从那以后我每次在新机器上配环境都强制走一遍「装 Git、装 TortoiseGit、设全局身份、生成密钥、上传公钥、ssh -T验证、克隆测试仓库」这条链路任何一步没过就不往下走。这套动作重复几次就成肌肉记忆比出问题再回头补要省心得多。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?