ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

TortoiseGit 安装配置与避坑:中文包、切换分支、SSH 密钥

TortoiseGit 安装配置与避坑:中文包、切换分支、SSH 密钥 1. 为什么我最后还是回到了 TortoiseGit刚开始接触版本控制那会儿我是坚定的命令行派。觉得敲git status、git commit才够专业鼠标点来点去算什么本事。直到有段时间同时维护三个项目每天在不同分支之间反复横跳还要给非技术岗的同事解释怎么提交改动我才发现纯命令行在某些场景下真的是自找麻烦。Windows 资源管理器里右键一点就能看到文件状态、直接提交、直接切分支这种体验一旦习惯了就回不去了。TortoiseGit 就是干这个的——它是 Git 的 Windows 图形化外壳俗称小乌龟因为它那个绿色的小乌龟图标几乎无处不在。它不替代 Git而是把 Git 的命令包装成右键菜单和弹窗让你在文件管理器里就能完成绝大部分日常操作。这篇文章我打算把安装、配置、切分支、生成密钥、中文包失效、Git 路径识别失败这些高频坑一次讲清楚适合刚接触 Git 的新手也适合用了几年命令行想试试图形化的老手。核心关键词 TortoiseGit 会在下文中反复出现但我会尽量讲得像同事之间交流而不是念说明书。2. 安装前的整体思路与方案选型2.1 TortoiseGit 和 Git 到底是什么关系很多人第一次装小乌龟会困惑为什么装完 TortoiseGit 还要单独装 Git这里必须先把关系理清否则后面配置一定会卡住。Git 本身是一套命令行工具负责真正的版本库操作所有的提交、分支、合并逻辑都在它里面。TortoiseGit 则只是一个皮肤它自己不存储任何版本数据每次你在右键菜单里点提交它做的事情是把你填的信息翻译成 Git 命令然后调用系统里的git.exe去执行。所以 TortoiseGit 是依赖 Git 存在的官方文档里也明确写着需要先安装 Git for Windows。理解这一点之后很多问题就好解释了。比如为什么 TortoiseGit 找不到git.exe就完全没法用为什么中文包不生效往往和版本不匹配有关为什么配置用户名密码其实改的是 Git 的全局配置而不是 TortoiseGit 自己的。这些都是同一件事的不同侧面。我个人的安装顺序建议是这样的先装 Git for Windows再装 TortoiseGit最后装中文语言包。三者的版本尽量保持同一时期发布尤其是 TortoiseGit 和语言包之间版本号差太远基本一定会出问题。2.2 命令行 Git 与图形化外壳的取舍有人会问既然命令行 Git 这么强大为什么还要用图形化我的看法是两者根本不是替代关系而是场景分工。命令行适合批量操作、脚本化、服务器环境、复杂的 rebase 和 cherry-pick图形化适合日常状态查看、单文件提交、合并冲突的直观处理、分支切换。TortoiseGit 里有一个我特别常用的功能叫版本日志它把整个提交历史画成可读的列表谁在什么时候改了哪个文件一目了然比git log --oneline --graph直观太多。另一个是与上一版本比较选中文件右键就能看到差异处理冲突的时候非常省事。所以我的方案是两个都装都配置好日常用图形化遇到复杂操作切回命令行。这样既不会因为图形化限制而卡住也不会因为纯命令行而降低效率。这也是为什么本文的安装部分坚决建议先装完整的 Git for Windows而不是去折腾什么精简版。注意TortoiseGit 只支持 WindowsMac 和 Linux 用户请忽略本文选择各自的图形化方案。2.3 下载渠道与版本选择下载这件事看起来简单其实坑不少。Git for Windows 建议去官网 git-scm.com 下载页面会自动识别你的系统架构。TortoiseGit 和中文语言包则去 tortoisegit.org 下载注意要下载对应架构的版本——现在基本都是 64 位但如果你还在用 32 位系统一定要选 32 位的安装包装错了会直接报错。版本选择上我的手感是不要追最新选最近几个月内发布、下载量大、没有紧急撤回的版本就行。TortoiseGit 的历史上出现过几次新版本引入小问题的情形稳妥起见可以选上一个稳定版。中文语言包一定要和 TortoiseGit 主版本号对应比如 TortoiseGit 2.15 就配语言包 2.15跨大版本基本会失效或者显示半中半英。下载时还要注意语言包的架构也要和主程序一致。下载完成之后建议先核对一下文件大小和数字签名尤其是从非官方镜像下载的时候。这几个安装包都不大几十兆验证一下不费什么时间。3. 安装配置全流程实操3.1 Git for Windows 的安装要点安装 Git for Windows 时一路下一步基本能过但有几个选项我建议专门停一下。第一个是默认编辑器默认是 Vim对不熟悉的人不太友好我会选 Notepad 或者直接用系统记事本反正 TortoiseGit 里提交信息都是弹窗填的命令行编辑器用到的机会不多。第二个是 PATH 环境变量那一步务必选Git from the command line and also from 3rd-party software这样git命令才能在任何目录下用TortoiseGit 也才能找到它。第三个是换行符处理Windows 上默认选Checkout Windows-style, commit Unix-style line endings就行这能避免跨平台协作时出现满屏的换行符警告。安装完成后打开命令行敲git --version能打印出版本号就说明装好了。这一步非常关键如果这里就失败后面 TortoiseGit 一定识别不到。我遇到过一次是在已经装了旧版 Git 的机器上重装PATH 里残留了旧路径导致新装的git.exe没生效最后手动清理了环境变量才解决。3.2 TortoiseGit 主程序安装TortoiseGit 的安装向导里最关键的一步是那个选择 SSH 客户端的界面。默认有个TortoiseGitPlink的选项我建议先保持默认后面配置密钥的时候再决定要不要换成 OpenSSH。原因在于 TortoiseGitPlink 会弹出图形化的密钥确认窗口对新手更友好而 OpenSSH 更标准化和命令行环境一致。如果你已经完全用命令行管理密钥可以在这里直接选 OpenSSH省得后面两套密钥来回切换。安装过程中如果弹出重启提示别急着重启先把中文语言包也装完再一起重启省时间。安装路径建议保持默认不要装到带空格或中文的目录里虽然现在大多支持但偶尔还是会遇到诡异问题没必要给自己找麻烦。装完之后在任意文件夹空白处右键应该能看到 Git Clone、Git Create repository here 这些菜单项说明主程序装好了。如果只有 Git Sync 之类的少数几项那可能是安装没完整或者被安全软件拦了。3.3 中文语言包安装与生效中文包失效是搜索量最高的 TortoiseGit 问题之一我自己也踩过好几次。装语言包的时候安装程序会问你安装到哪个目录一定要指向 TortoiseGit 的主安装目录一般它会自动识别。装完之后必须做两步操作第一在文件夹空白处右键进入 TortoiseGit 设置找到常规里的语言选项下拉选择中文简体点应用第二如果设置里根本没有中文选项说明语言包没被识别到通常是版本不匹配或者装错了目录。还有一种情况是设置里选了中文但界面还是英文这时候试试重启资源管理器任务管理器里找到 Windows 资源管理器右键重新启动。因为 TortoiseGit 的菜单是注入到资源管理器里的不重启的话缓存不会刷新。如果重启后还是英文检查一下语言包的版本号是不是和主程序完全一致我遇到过 2.14 的主程序配 2.16 的语言包界面时好时坏换成一致版本后立刻正常。提示语言包和主程序的版本号必须对应跨版本是最常见的失效原因没有之一。3.4 配置用户名和邮箱这一步对应的是 Git 的全局配置TortoiseGit 只是提供了图形入口。进入设置左侧找到Git里面有两个关键信息名称和邮箱。填完之后如果你也想让命令行生效可以确认一下是不是写入了全局配置。TortoiseGit 设置里改的默认就是全局存在用户目录下的.gitconfig文件里。我习惯在命令行里直接验证git config --global user.name和git config --global user.email能正常输出就说明配置到位。有时候 TortoiseGit 里填了但命令行里没生效多半是因为两者读取的配置文件位置不同或者你选的是仅本仓库而不是全局。这个细节看似小但提交历史里的作者信息错了很难看尤其是团队项目里我见过有人提交了几十个 commit 之后才发现邮箱写错了。3.5 解决找不到 git.exe 的问题configure git.exe 无法识别到 git.exe path 是我见过频率最高的问题没有之一。当 TortoiseGit 提示找不到 Git 路径时处理办法是进入设置左侧找到Git右边有个Git.exe 路径的输入框。如果你在命令行里git --version是通的可以点右边的浏览按钮手动定位。默认位置一般是C:\Program Files\Git\cmd\git.exe注意是cmd目录下的不是bin目录下的两者容易搞混。如果命令行里git --version本身就报错那问题不在 TortoiseGit而在 Git 安装或环境变量。这时候按前面说的重新确认 PATH或者干脆重装一次 Git for Windows 并勾选正确的 PATH 选项。我自己最快的排查顺序是先看命令行能不能跑 git能就跑设置里手动指定路径不能就先修 Git 本身修好了 TortoiseGit 通常自动就能识别。确认路径正确后点应用TortoiseGit 会自己验证一次如果路径有效下面的版本号会显示出来这一眼就能判断有没有配好。4. 日常使用中最常碰到的几个场景4.1 克隆仓库与首次拉取克隆在 TortoiseGit 里叫 Git Clone在你想存放代码的文件夹空白处右键就能看到。弹出窗口里三个关键字段URL 填仓库地址Directory 填本地目录后面会自动根据仓库名生成。点确定之后会弹出进度窗口第一次克隆大仓库可能要等一会儿。如果仓库是私有的会要求你输入凭据。这里有个新手常犯的错误输错一次之后Windows 凭据管理器会记住错误的凭据之后怎么输都失败。解决办法是打开控制面板 - 凭据管理器 - Windows 凭据找到对应地址的那条删掉再重新克隆。这个坑我见过太多人掉进去明明密码是对的却一直提示认证失败就是缓存在作怪。克隆完成后进入目录文件夹图标上会出现绿色对勾说明所有文件都和远程一致没有本地改动。如果出现红色感叹号表示有本地修改黄色感叹号表示有冲突或者需要合并。这些图标状态是 TortoiseGit 最直观的地方熟练之后扫一眼就知道仓库健不健康。4.2 提交改动与编写提交信息改动文件之后右键文件选 Git Commit。弹窗上方是文件列表默认勾选所有改动你可以取消勾选部分文件实现单文件提交。下方是提交信息输入框我强烈建议认真写第一行写简短标题空一行后面写详细原因。TortoiseGit 默认会启用Amend和Commit and Push这些按钮新手注意别误点 Amend那是修改上一次提交用的点错了会把新改动合并到旧提交里。提交信息的格式我习惯遵循一种简单约定标题控制在 50 字以内用动词开头比如修复用户登录时头像不显示的问题。正文写清楚为什么改、怎么改的、影响范围。这样回溯起来非常方便。TortoiseGit 里还有一个粘贴提交信息的小功能配合团队约定的模板能省不少事。提交完之后本地仓库的改动就成型了。如果同时也要推送到远程可以直接点 Commit and Push省去再右键一次的操作。4.3 切换分支这件事其实很简单tortoisegit 切换分支是搜索热词说明确实很多人被卡过。在 TortoiseGit 里切换分支有两种方式一种是在工作目录空白处右键选 TortoiseGit - 切换/检出弹窗里会列出本地分支和远程分支选中目标分支点确定即可另一种是在版本分支图里右键某个分支节点选择切换/检出到此版本。第一种方式更直观推荐日常使用。切换前 TortoiseGit 会检查有没有未提交的改动如果有会弹提示问你是要暂存还是带走。这里要特别注意切换分支前最好先提交或者暂存当前改动否则改动会跟着你一起跑到新分支上容易造成混乱。我见过不少人因为这个把两个分支的改动弄混了。切换成功后文件夹图标会重新刷新版本日志里当前分支会高亮显示。如果是基于远程分支新建本地分支可以在切换窗口里勾选创建新分支填个名字就行。这个操作对应命令行的git checkout -b。注意切换分支前如果本地有未提交改动一定要先处理TortoiseGit 的提示窗口看仔细再点。4.4 生成 SSH 密钥并配置到远程tortoisegit 小乌龟生成 key 也是一个高频需求。TortoiseGit 自带 PuTTYgen 工具开始菜单里搜 PuTTYgen 能找到或者在 TortoiseGit 安装目录的 bin 下也有。打开后点 Generate在空白区域来回移动鼠标直到进度条走完就生成了密钥对。上面是公钥下面是私钥私钥可以设置密码保护。生成的密钥要保存两个文件私钥保存成.ppk格式PuTTY 专用公钥复制文本内容粘贴到远程平台比如各类代码托管平台的 SSH 密钥设置页。保存私钥的时候一定要看好不要保存成 OpenSSH 格式否则 TortoiseGitPlink 不认。如果要用 OpenSSH 客户端则在 PuTTYgen 里通过 Conversions - Export OpenSSH key 导出另一种格式。保存好之后在 TortoiseGit 设置里找到 Git - 远端或者直接编辑仓库的.git/config把远程地址改成 SSH 形式。然后在设置里指定私钥文件路径也就是 SSH 客户端 那一栏的配置。测试连接的时候如果弹出密钥确认窗口选是就加入到缓存了之后操作不再询问。5. 常见问题与排查速查5.1 高频问题速查表问题现象大概率原因处理办法提示找不到 git.exePATH 没配好或手动路径填错命令行验证git --version再在设置里手动定位到cmd下的 git.exe中文包装了没反应版本不匹配或未手动选语言核对版本号设置里选简体中文重启资源管理器认证一直失败凭据管理器记住了错误密码控制面板凭据管理器删掉对应条目重试提交时作者信息不对全局配置没设或设成本地命令行核对git config --global user.name分支切换后改动跑到别的分支切换前没提交或暂存切前先 commit 或 stash图标全是绿色但文件明明改了图标缓存未刷新按 F5 刷新或重启资源管理器语言包安装时找不到主程序目录主程序装到了非默认位置手动指向 TortoiseGit 实际安装目录推送时提示非快进远程有本地没有的提交先拉取合并再推送5.2 图标不刷新和路径识别失败的处理图标不刷新的问题特别常见尤其是改了文件之后图标还是绿的。这通常是资源管理器的图标缓存没更新导致的不是 TortoiseGit 坏了。最简单的办法是选中文件夹按 F5 刷新或者进入文件夹再退出来触发重新加载。如果大面积不刷新就重启资源管理器。我遇到过极端情况是缓存彻底乱了需要重启电脑才能恢复这种时候不要怀疑自己配置错了纯属缓存问题。至于路径识别失败核心思路就是先确认 Git 本身可用再确认 TortoiseGit 指向了正确的git.exe。还有一个小细节有些安全软件会拦截 TortoiseGit 对git.exe的调用表现也是提示找不到。遇到这种情况把 TortoiseGit 安装目录加入白名单通常就好了。5.3 我踩过的几个真实坑第一个坑是语言包版本。我第一次装的时候主程序是最新版语言包随手下了一个结果界面半中半英看着特别别扭后来发现版本差了两个大版本。第二个坑是路径填了bin目录TortoiseGit 能识别但提交时报错换成cmd目录才正常。第三个坑是凭据缓存改了一次远程仓库密码之后一直认证失败排查了半天才发现是 Windows 凭据管理器里存着旧密码。还有一个不算坑但值得提的用 TortoiseGitPlink 作为 SSH 客户端时第一次连接会弹窗口问是否信任主机如果你没留意点了取消后面就一直连不上。解决办法是进入设置把那个主机指纹删掉重新连接一次这次记得点是。这些经验文档里通常不写但实际用起来很容易撞上。6. 一些提升效率的使用习惯6.1 把提交信息模板用起来团队协作里提交信息格式乱是通病。TortoiseGit 支持设置提交信息模板在设置里找到提交信息模板相关配置可以放一个文本文件路径每次提交时模板内容会自动填入。我一般放一个简单模板包含标题、原因、影响范围三部分提交者填空就行。这样做的好处是提交历史可搜索、可分类回溯问题的时候效率高很多。这个小功能用的人不多但一旦团队里推广开收益很明显。6.2 善用版本日志和差异对比TortoiseGit 的显示日志功能是我用得最多的。它把提交历史、分支线、作者、时间都列在一起点任意一条能看这次提交改了哪些文件再点文件能看具体差异。排查这个 bug 是哪次提交引入的时配合追溯功能基本几分钟就能定位。相比命令行的git blame图形化的追溯能直接跳到那一行、高亮显示直观程度不是一个量级。差异对比还有一个隐藏用法选中两个版本右键比较能看到这两个版本之间的全部变化做代码审查或者了解别人改动时很方便。6.3 设置忽略列表和全局忽略每次提交时都会看到一堆不该提交的文件比如编译产物、编辑器配置、临时文件。TortoiseGit 可以通过右键文件选 TortoiseGit - 添加到忽略列表 来忽略它会写入.gitignore文件。如果想让忽略规则在所有仓库生效可以在设置里配置全局忽略文件把常见的那堆模式一次性写进去比如各种*.log、*.tmp、IDE 生成的目录等。配置忽略列表这件事越早做越好尤其是刚开始一个项目的时候。等仓库里已经混进一堆垃圾文件再清理还得先提交再删除麻烦得很。6.4 定期做一次仓库维护TortoiseGit 菜单里有清理和维护相关的功能可以压缩仓库、清理无用对象。一个用了很久的项目仓库体积可能会膨胀。命令行里git gc是常规操作TortoiseGit 的清理对话框里也能触发。我一般每隔一两个月做一次尤其是看到克隆变慢的时候。图形化的好处是它会给出选项让你确认哪些清理动作要执行对新手来说比直接敲git gc --aggressive安全一些。另外如果远程仓库有大量已合并的远程分支残留可以在拉取时勾选修剪选项让本地不再追踪那些已经删除的远程分支保持分支列表干净。6.5 在团队里推广时的小技巧如果你要带着同事一起用小乌龟我有几个实际管用的经验。第一把安装包和语言包打包放共享盘统一版本避免各装各的版本不一致。第二提前配好提交模板和忽略列表放到新仓库模板里。第三跟非技术同事解释的时候别讲分支原理直接告诉他改完文件点提交写完说明点推送把复杂概念藏起来。第四遇到问题先看右下角托盘区TortoiseGit 的操作结果会在托盘弹出提示比翻窗口快。我个人实际操作下来的体会是TortoiseGit 真正的价值不在于替代命令行而在于降低了团队里非专业开发者的使用门槛。把配置这一关走顺了后面的日常使用其实非常省心右键点一点就能完成大部分工作。最开始那两个小时花在安装配置和踩坑上后面能省下几十个小时的沟通成本这笔账怎么算都划算。
返回列表