
Git现在已经不需要我再多介绍什么了基本上只要碰代码早晚都得跟它打交道。但有意思的是我这几年在技术群和后台看到的求助消息里十个新手最少有三四个不是被Git那堆命令劝退的而是倒在了最不该倒下的地方——安装下载。官网直连慢得离谱下载到99%断了重来装完了CMD里敲git报不是内部或外部命令右键菜单找不到Git Bash……这些问题如果你都碰过或者正被其中某一个卡住今天这篇就是为你写的。我会从下载开始讲把国内网络下怎么把Git拿到手这个老大难问题先解决掉然后一步一步带你装完、配好环境变量、完成基础身份配置和SSH免密最后再把新手高频遇到的几个坑单独拉出来排查一遍。目标很直接跟着这篇文章走完你的Git环境就能安稳落地不用再去别处拼凑教程。1. 为什么Git官网下载总是慢成PPT1.1 慢的根源不在你的网速先把结论放前面Git下载慢绝大多数情况下不是你宽带不行也不是电脑出了毛病而是Git for Windows的安装包托管在GitHub的Releases页面服务器在海外国内网络访问它需要跨越国际链路高峰期丢包率高、带宽被限速度自然就崩了。我见过一个很典型的案例同事下午四点从官网下载Git速度稳定在2KB/s按这个速度一个将近60MB的安装包要下十几个小时他看了一眼进度条直接放弃了。还有些人运气好一点速度能到几十KB/s但下载到一半连接断掉浏览器又不会断点续传只能从头再来反复几次心态直接炸。另外还有一个容易被忽略的点浏览器直接从GitHub拉文件时如果网络环境不稳定中途断连的概率非常高而且GitHub对单个连接的速度限制也比较严格这不完全是运营商的问题是跨网调度和服务器策略共同导致的结果。1.2 先判断你的慢属于哪种情况不是所有下载慢的解法都一样动手之前先做个快速自检故障表现大概率原因解决方向下载速度稳定在几KB/s国际链路限速换国内镜像源下载到一半就断还得重新来连接不稳定/被重置换国内镜像源页面能打开但点下载按钮没反应CDN调度异常换国内镜像源浏览器下载慢其他网站一切正常对GitHub源站限速换国内镜像源看到这个表应该已经懂了大多数情况下唯一靠谱的解法就是换镜像源。网上有些教程给的方案绕来绕去有门槛还不稳定而且改完系统配置之后如果解析失效反而更糟。镜像源的原理其实很简单——把GitHub服务器上的安装包同步到国内机房你从国内服务器下载走的全是内网级别的链路速度自然不是一个量级路径短、延迟低、断连概率小。2. 镜像下载实操一个链接解决下载难题2.1 我用得最顺手的两个国内镜像源目前我实际用下来最稳定的镜像源有两个。第一个是清华大学开源软件镜像站网址是 https://mirrors.tuna.tsinghua.edu.cn 进去之后找git-for-windows相关目录或者直接在站内搜索git-for-windows就能看到按版本号排列的文件夹。清华镜像同步频率高版本更新也比较及时基本官网发新版本后几天内就能同步过来。第二个是华为云镜像站网址是 https://mirrors.huaweicloud.com/git-for-windows/ 目录结构清晰路径短加载速度快而且同样有完善的版本归档。如果你访问官网都被卡得不要不要的这两个镜像站在国内网络下打开都是秒开级别。两个站我都在不同时间段包括晚高峰测过速度白天基本能顶着带宽上限跑晚高峰也能维持在几MB/s比官网的几KB/s强了几百上千倍。选哪个看你个人偏好没有本质区别哪个打开快就下哪个。2.2 目录里那一堆文件到底该下哪个第一次打开镜像目录的人大概会有点蒙版本文件夹里躺着一堆文件名字都很接近。我拆开讲讲。以进入 v2.45.2.windows.1 这个版本目录为例忽略掉源码压缩包和补丁文件你需要关注的核心文件其实就这么几个文件特征适用场景Git-2.45.2-64-bit.exeWindows 64位系统安装版绝大多数人下这个Git-2.45.2-32-bit.exeWindows 32位系统安装版只有老机器才需要PortableGit-2.45.2-64-bit.7z.exe 或 .tar.bz2便携绿色版免安装解压即用适合不想写注册表的场景怎么确认自己的系统位数Windows设置里打开系统页面查看系统类型或者桌面右键此电脑→属性。现在市面上流通的电脑98%都是64位所以默认选 -64-bit.exe 就行。版本号怎么挑我的建议是不用刻意追求新。Git的版本迭代非常频繁镜像站首页显示的最新版本号可能比你现在看到的还要高一级但稳定版和最新版在功能上差距很小。挑一个发布时间超过一周的版本等社区反馈稳定了再装更稳妥你要的是干活不添乱不是抢先用新功能。2.3 下载过程中的两个小提醒第一尽量用浏览器自带的下载功能不要为了提速专门去折腾那些第三方下载加速工具。Git安装包本身不算大镜像源速度已经够快了完全没必要让下载器介入。反而有些下载工具为了加速会搞P2P共享容易触发杀毒软件误报到时候装的时候还要多一步判断纯粹给自己找麻烦。第二下载完成后先看一眼文件大小再双击。Git for Windows的64位安装包体量在60MB上下浮动。如果你下下来的文件只有几MB那几乎可以肯定下载不完整或者页面跳转出了幺蛾子这种情况别硬装直接删掉重下免得后面报一个莫名其妙的错误浪费时间。3. 安装向导逐项过一遍有取舍有理由安装包到手双击运行如果UAC弹窗就点是。接下来是一长串安装向导很多人习惯闭着眼睛一路Next但我劝你还是花三分钟把每个选项过一遍。这些选项不是摆设选错了后面会以各种奇怪的方式找你麻烦。3.1 安装路径和组件选择空间与右键菜单的学问第一个实质性的选择是安装路径默认 C:\Program Files\Git。C盘空间充足就保持默认想换个盘放也行。但注意路径里不要出现中文和空格比如 D:\Program Files\Git 没问题D:\软件\Git 这种就别用了Git内置的Shell工具对中文路径支持不算好你现在图省事后面可能会在某个莫名其妙的时刻收获一个编码错误。下一页是Select Components逐项说Additional icons附加图标桌面快捷方式可勾可不勾没啥影响。Windows Explorer integrationWindows资源管理器集成强烈建议勾选。这一项会给你右键菜单加上Git Bash Here和Git GUI Here以后在任意文件夹里右键就能直接打开Git Bash省去了每次手动cd到项目目录的麻烦这是日常使用频率最高的入口。Git Bash Profile for Windows Terminal建议勾选。Windows 10/11自带终端勾完之后新建标签页里会多出Git Bash选项切换很方便。Git Credential Manager强烈建议勾选。它负责账号密码凭据管理后面推送到远程仓库时第一次输入密码会被Windows记录下来之后就不用反复输入了。符号链接等高级选项默认别动除非你明确知道它是干嘛的。3.2 默认编辑器别让Vim成为你的第一个拦路虎到Select Default Editor这一步默认选的是Vim。Vim在程序员圈子里确实很神但它对新手极其不友好尤其是你只是想提交一次代码、写两行提交信息的时候git commit 弹出一个Vim窗口光标停在最下面闪烁你连怎么进入输入模式都不知道更别说保存退出了。很多人第一次用Git就卡在这里还以为是自己代码写错了。我的建议非常直接电脑上装了VS Code就在下拉框里选 Use Visual Studio Code as Gits default editor。没装的话顺手装一个也不亏。选完之后每次git commit会弹出VS Code窗口你像编辑普通文件一样写提交信息关闭标签页就完成了。体验完全是另一个档次。这一步不是必须但绝对是新手友好度提升最大的一步。3.3 PATH三选一这是安装全程最关键的一步Adjusting your PATH environment这个界面三个单选选项我见过无数人在这一步选错Use Git from Git Bash only —— Git只能在Git Bash窗口里用在CMD和PowerShell里敲git会提示找不到命令。不推荐。Git from the command line and also from 3rd-party software —— Git在Git Bash、CMD、PowerShell、VS Code终端里都能直接用。强烈推荐绝大多数人选这个。Use Git and optional Unix tools from the Command Prompt —— 除了Git之外还会把一系列Unix小工具装进PATH比如find、sort等命令会被Git自带的版本覆盖。不推荐因为Windows本身就有同名命令两边一起出现在PATH里行为冲突排查起来极其麻烦。选第二项不用犹豫。选完之后安装程序会把Git的cmd目录写进系统PATH这就是为什么装完理论上能在CMD里直接用git的原因。3.4 HTTPS后端、行尾转换和终端选项三个容易忽略的隐形选择接下来的几个界面很多人都是随手点默认我不拦着但你起码要知道影响是什么。Choosing the HTTPS transport backend里两项Use the OpenSSL library 和 Use the native Windows Secure Channel library。前者是Git自带的安全加密库跨平台一致性好后者调用Windows系统自带证书体系在公司网络环境或特殊证书环境下更有优势。普通使用者保持默认的OpenSSL就好不用改。Line ending conversions是三选一这是老生常谈的换行符问题。Linux用\nWindows用\r\nGit当初是Linux下开发的如果不管换行符拉下来的文本文件在Windows上可能显示成一行或者你没改任何内容、Git却提示整个文件都变了。推荐选第一项 Checkout Windows-style, commit Unix-style line endingsGit会在拉取代码时自动转成Windows的\r\n提交时转回Unix的\n两边都不得罪这是最主流、最不容易踩坑的方案。Choose a terminal emulator for Git Bash默认是Use MinTTY保持默认即可。MinTTY类似Unix终端复制粘贴用鼠标选中即复制、右键即粘贴用习惯了回不去。后面的Configure extra optionsEnable file system caching建议勾选能提升Git在Windows上的性能。Enable symbolic links不要勾Windows上启用符号链接需要管理员权限日常用起来很麻烦。最后是实验性选项页面直接跳过。全部确认完后点Install剩下就是等安装进度条走完。整个过程大概一两分钟比下载时间短得多。4. 落地的临门一脚环境变量与验证命令4.1 装完CMD报git不是内部或外部命令为什么这是安装后出现频率最高的报错没有之一。明明安装界面没有报错打开CMD敲 git --version 却提示不是内部或外部命令。原因通常是这几种安装程序确实写了环境变量但你之前已经打开的CMD窗口还停留在旧环境里不会自动刷新。解决办法很简单把CMD或PowerShell全部关掉重新开一个。部分安全软件会拦截安装程序修改环境变量的动作然后悄无声息地把这次变更拦下来。安装时选了自定义路径PATH写入在某些特殊情况下没有正确生效。无论哪种手动配置环境变量都是最彻底、最一劳永逸的解法。别嫌麻烦这一步弄好了后面十年都省心。4.2 手动配置环境变量的完整流程先确认Git的安装目录默认是 C:\Program Files\Git或者你自定义的路径。打开这个目录能看到里面有三个核心子目录cmd、bin、usr。环境变量需要指向的是cmd目录因为git.exe就躺在里面。具体操作步骤Windows搜索栏输入编辑系统环境变量打开系统属性窗口点右下角环境变量。在系统变量区域点新建变量名填GIT_HOME变量值填Git安装根目录比如D:\Program Files\Git确定。在系统变量里找到Path双击打开点新建添加一行%GIT_HOME%\cmd确定。一路点确定把设置窗口全部关掉。这里设置GIT_HOME再引用它而不是直接把完整路径写进Path是很多老工程师的习惯。好处是以后Git版本升级或者你手动改了安装目录只需要改GIT_HOME这一个变量Path里引用它的位置不用动维护成本极低。4.3 三个命令确认装好了配置完成重新打开一个新的CMD或PowerShell窗口强调一定新开旧窗口读不到最新环境变量依次验证git --version输出 git version 2.45.2.windows.1 这样的版本号说明Git本体安装成功。where git输出 C:\Program Files\Git\cmd\git.exe 或者你的自定义路径说明PATH生效系统能找到git命令。git config --list如果提示没有配置或No such file说明目前还没有任何配置项这是正常的下一步就去配。5. 开工前的身份配置user.name、user.email和SSH密钥5.1 user.name和user.email为什么一上来就要配Git每次提交都会记录作者姓名和邮箱这两个信息来自用户配置。你不主动配置的话有的场景下Git会从系统用户名拼一个默认身份有的场景会直接报错让你指定还有的场景会在提交时提示Please tell me who you are。更糟糕的是如果你没配置就提交了代码记录里的作者信息可能是一串看不懂的乱码或者直接缺失你的工作量会被完整记录下来但没人知道那是你干的。在GitHub个人主页的贡献图上对应格子也显示不出来。所以安装完成后第一件事配置全局身份git config --global user.name 你的昵称 git config --global user.email 你的邮箱--global参数表示这台电脑所有Git仓库默认都用这个身份。如果将来有某个项目想用不同身份在项目目录下不带--global再执行一次同样的命令就行项目级配置会覆盖全局配置。输完用 git config --list 检查能看到 user.name 和 user.email 两行说明配置生效了。5.2 SSH密钥生成一张表分清公钥和私钥要把代码推到远程仓库GitHub、GitLab、Gitee都行最方便的认证方式就是SSH密钥。配置一次以后操作远程仓库再也不用输密码。打开Git Bash输入ssh-keygen -t ed25519 -C 你的邮箱如果系统提示不支持ed25519算法极少见一般发生在老版本上换成ssh-keygen -t rsa -b 4096 -C 你的邮箱就行。-C参数只是给密钥加备注写邮箱是为了以后多把密钥时方便区分。回车后会询问密钥保存路径默认是 C:\Users\你的用户名.ssh\id_ed25519直接回车用默认即可。接下来要求设置passphrase密码短语可以留空直接回车也可以设一个。留空的密钥用起来完全免密但风险是如果别人拿到你的私钥文件就能直接访问你的仓库设了密码短语的话第一次使用密钥时还要输一次安全性和便利性的平衡。我的建议是独立个人电脑留空可以公用电脑一定设。密钥生成完后你会得到两个文件文件名性质安全级别id_ed25519私钥只能留在本机泄露等于把仓库钥匙交给别人id_ed25519.pub公钥可以公开贴到代码托管平台账户上查看公钥内容cat ~/.ssh/id_ed25519.pub复制输出整行以ssh-ed25519开头邮箱结尾登录你的代码托管平台找到设置→SSH Keys或SSH公钥页面粘贴保存就完成了。5.3 验证SSH连通性别等到推送时才发现问题以GitHub为例在Git Bash里执行ssh -T gitgithub.com第一次连接会询问是否信任主机输入yes回车。如果看到Hi 你的用户名! Youve successfully authenticated这样的输出就说明SSH配置成功了。Gitee用户执行ssh -T gitgitee.com看到成功验证字样即可。这一步务必先验证通过再说。否则后面clone SSH协议的仓库时报权限错误你还要回头排查半天。6. 装完之后的高频报错排查手记最后写几个我实际帮人排查时遇到最多的报错按频率从高到低排。6.1 安装卡在中间进度条不动Git安装程序卡住多见于安全软件后台拦截弹窗没有正常显示的情况。检查顺序先看安全软件有没有拦截提示有就点允许或临时退出再重试再看安装目录所在磁盘剩余空间空间不足也会导致进度条假死最后以管理员身份右键运行安装程序排除权限问题。Win7老系统如果遇到兼容性问题可以右键安装包属性里把兼容模式调成Windows 7再运行。6.2 右键没有Git Bash Here安装时没勾选Windows Explorer integration或者系统里装过其他右键菜单管理工具把它禁用了。前者需要重新运行安装程序在组件选择界面勾选对应项修改后者去右键菜单管理工具里把Git Bash Here启用。这种情况重装一次就好不用卸载直接覆盖安装选组件即可。6.3 克隆仓库报SSL certificate problem报错内容类似unable to get local issuer certificate。通常两种原因一是本地系统证书链不完整更新系统根证书一般能解决二是公司内网对HTTPS流量做了证书替换很多企业网关的常规操作导致Git不信任当前证书。第二种情况推荐在安装Git时选择Use the native Windows Secure Channel library后端让Git使用Windows系统证书库兼容性会好很多。如果你赶时间可以临时执行git config --global http.sslVerify false绕过验证但这条命令只在排除问题时用平时别开着否则HTTPS传输等于没有安全校验。6.4 每次推送都要密码说好的免密呢最常见的坑是远程仓库地址仍然以https开头。HTTPS协议推送到远程时本来就要认证凭据管理器虽然能记住但没有正确配置的情况下每次还是会重新要密码。两个解决办法一是安装时确认勾选Git Credential Manager让Windows凭据管理器接管密码二是直接把远程地址改成SSH地址执行git remote set-url origin gitgithub.com:用户名/仓库名.git然后用SSH方式推送一次配置永久免密。第二个方案我推荐因为SSH方式不依赖Windows凭据体系换电脑迁移也更干净。6.5 Git Bash中文乱码与文件名显示异常Git对非ASCII字符默认做了转义处理仓库里的中文文件名在git status输出时会变成一串反斜杠加数字的编码。执行一下git config --global core.quotepath false之后中文文件名就能正常显示了。如果Git Bash终端本身的输出乱码可能是字体和字符编码的问题在Git Bash窗口标题栏右键进入Options把文本编码调整为UTF-8基本上能解决大部分显示问题。最后再分享一个我自己踩过的小坑装完Git之后顺手把默认分支名也统一一下执行git config --global init.defaultBranch main。老版本Git初始仓库的默认分支叫master新版本叫main提前把默认分支名设成main以后你在终端里跑git init出来的仓库分支名就不会一会儿master一会儿main的手上多个项目也不容易搞混。这一步虽然不起眼但属于那种提前做了没感觉没做早晚被坑的配置。