ARTICLE DETAIL

资讯详情

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

Win11下Git安装配置全攻略:从下载到SSH认证与常见问题排查

Win11下Git安装配置全攻略:从下载到SSH认证与常见问题排查 才把一台Win11的电脑收拾干净准备把前端几个项目从旧机器迁过来。装完Git、配好环境那会儿同事在旁边问了一句“这东西不是下一步下一步就完了吗”我当时愣了一下——他说的没错对老手来说Git安装确实就是“下一步×N”的事。但对刚接触开发没多久的朋友来说光是安装过程中那几个英文选项就能劝退一拨人装完右键菜单里找不到Git Bash又是另一拨配好了SSH连不上远程仓库再劝退一拨。这篇教程就是写给这些朋友的。我会用Win11以2026年最新版本为例从头到尾走一遍Git的下载、安装、环境配置、SSH认证、常用命令和问题排查。文中的每一步都会解释为什么这么选、不这么选会有什么后果你照着做就行后面遇到问题也知道去哪儿查。1. 安装前的准备与核心工具理解1.1 Git到底在解决什么问题先说个容易混淆的概念Git和GitHub/Gitee不是一回事。Git是一个分布式的版本控制系统运行在你本地电脑上它的核心能力是记录文件的每次变更、支持分支管理、允许你随时回退到任意历史版本。而GitHub、Gitee这些是基于Git的代码托管平台相当于把本地仓库同步到云端方便多人协作和多设备同步。为什么新人经常把两者混在一起因为日常操作中用到的命令都是同一套git clone、git push、git pull……你确实是通过Git命令在和远程平台交互于是Git就成了那层“看不见的中间人”。安装Git就是在你的Win11系统里装上这个“中间人”让命令行工具可以执行版本管理操作。1.2 Win11环境下安装Git的前置检查在双击安装包之前有几件事值得先确认一下。检查系统版本。写这篇教程时Win11已经迭代到了27H2这个版本号。你可以在“设置 → 系统 → 系统信息”里看到完整的版本信息。只要你的Win11是64位系统现在绝大多数都是就可以放心使用官方文档推荐的64位Git安装包。如果你的系统还是Win10安装步骤完全一样只是右键菜单那个坑在Win11上多了一个坎后面我会单独说。确认系统架构。右键“此电脑”选“属性”或者在“运行”里输入msinfo32回车可以看到“系统类型”一栏写着“基于 x64 的电脑”还是“基于 ARM 的电脑”。绝大多数人是x64但如果你用的是ARM架构的Win11设备比如部分新款轻薄本就需要去Git官网下载对应的ARM64版本安装包。预留磁盘空间和关闭杀毒软件。Git本体安装后大概占300MB左右空间不是问题。但有些安全软件会对Git的安装行为产生干扰比如拦截Git写入环境变量、拦截安装Git LFS插件等。如果你之前遇到过安装卡死或装完命令无法识别的问题可以先临时退出安全软件再装。下载源的选择。关于Git的下载渠道最稳妥始终是官方站点。官方站点会根据你的系统自动推荐合适版本下载速度通常也可以接受。如果官网打不开或者下载速度确实太慢也可以选择一些正规的软件镜像站。但我要提醒一句不要从不知名的第三方网站下载安装包这类网站经常捆绑推广软件甚至恶意代码每年代码托管平台和系统论坛都会有人因为下载了被篡改的Git安装包而中招。2. Git最新版安装全程拆解2.1 获取官方安装包与版本选择Git官网的下载页面会列出当前最新的Windows版本。以2026年初为例主流稳定版本已经到2.5x系列新版本主要在性能优化、协议增强和Windows平台兼容性上做了改进。对多数人来说认准官方推荐的最新稳定版本就够了没有必要追Beta版。下载时注意区分两个文件Git-x.x.x-64-bit.exe标准64位安装包大多数人下载这个Git-x.x.x-arm64.exeARM架构设备使用还有一个偏技术向的选择是PortableGit也就是绿色免安装版。我建议新手还是老老实实用安装版因为安装版会帮你配好路径、右键菜单、缓存目录等一堆环境绿色版需要手动处理的部分太多对不熟悉系统原理的人来说容易埋坑。2.2 安装向导每一页到底怎么选Git安装向导从2.x版本开始变化不大但每一页的选项都有它的用处。我按顺序带大家过一遍关键页面顺便说明哪些可以放心用默认值。阅读许可协议页、选择安装路径页这两页没什么好说的路径建议保持默认或者放到一个不含中文和空格的路径下。如果你后面打算用一些需要调用Git的程序比如VS Code、JetBrains全家桶、Sourcetree等路径里有中文或空格容易引起奇怪的问题。选择组件页这里最核心的选项是Git Bash Here和Git GUI Here一定要勾选。前者让你在文件夹右键菜单里直接打开Git命令行后者提供图形化操作界面。其他选项保持默认即可。附加图标那个选项选了也只是在桌面生成快捷方式看你习惯。选择默认编辑器这里默认是Vim很多新手在这一步会困惑。如果你平时不用Vim强烈建议在下拉框里选择VS Code或者Notepad。因为你在执行git commit时Git会调用默认编辑器让你填写提交说明Vim对新手太不友好了——打开之后不知道怎么写、不知道怎么保存退出卡在那里很崩溃。如果你电脑上还没装VS Code就先保持默认Vim后面改配置也很简单。调整PATH环境变量页这页非常关键三个选项的差异很大。第一个选项Use Git from Git Bash only表示只有Git Bash能使用Git命令CMD和PowerShell里敲不了git。第二个选项Git from the command line and also from 3rd-party software会把Git加入系统PATH推荐绝大多数人选这个。第三个选项Use Git and optional Unix tools from Command Prompt会覆盖Windows自带的某些工具比如find、sort容易引发冲突不建议新手选。选择HTTPS后端传输这一步用默认的Use the OpenSSL library即可。另一个选项是Windows原生证书库主要用在学校和某些企业环境下普通用户没必要折腾。配置行结束符转换这页是很多人忽略但很重要的坑。Windows系统用CRLF表示换行Linux和macOS用LFGit在下载和上传代码时需要在这两者之间做转换。这里建议选第三个选项Checkout as-is, commit as-is也就是不做任何自动转换让文件保持原样。这样就避免了不同系统克隆同一仓库时因为换行符不同而出现“整个文件都被标记为修改”的尴尬情况。如果你和团队都统一用Windows或者统一用macOS/Linux选这个最省心。配置终端模拟器选默认的Use MinTTY。MinTTY比Windows自带控制台体验好很多支持更多快捷键和颜色显示。配置额外选项三个默认选项都建议保留。启用文件系统缓存可以提升Git操作大仓库时的性能启用Git凭证管理器可以让Git记住你输入过的账号密码省去重复认证的麻烦。配置实验性选项新手不要勾选实验性的rebase内置支持或伪控制台支持如果你看到这个选项的话这些功能还不稳定没必要折腾。2.3 Win11右键菜单的坑安装完右键没有Git Bash这是Win11用户最常遇到的问题值得单独拿出来说。Win11的右键菜单和Win10做了大改版默认折叠在一组“显示更多选项”里。你刚装完Git时在文件夹里按右键只看到“显示更多选项”点开后才能在二级菜单里找到Git Bash Here和Git GUI Here。这不是安装失败而是Win11把经典菜单藏起来了。有两个解决方案方案一接受Win11的默认设计。每次需要打开Git Bash时先按ShiftF10或者点“显示更多选项”然后选Git Bash Here。好处是不用改系统设置坏处是多一步操作。方案二把右键菜单改回经典模式。网上流行的改回Win10右键菜单的方法是修改注册表本质上是把Win11的“显示更多选项”默认展开。具体操作是按WinR输入regedit回车导航到HKEY_CURRENT_USER\Software\Classes\CLSID新建项{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}再在它下面新建项InprocServer32将默认值留空重启资源管理器任务管理器里重启“Windows资源管理器”进程即可生效。改动前记得系统还原点。这是改动注册表的基本安全操作不然出问题想反悔就麻烦了。3. 环境配置三步走3.1 配置全局用户信息装完Git后第一件事不是急着clone而是先告诉Git“你是谁”。因为你在提交代码时Git会把作者信息写入每一次提交记录里没有配置的话提交会直接报错。打开Git Bash输入下面两条命令git config --global user.name 你的名字 git config --global user.email 你的邮箱名字建议用英文或拼音避免在跨平台协作时出现编码问题邮箱建议用你注册代码托管平台时用的邮箱这样提交记录能正确关联到你的账号头像。查看配置用git config --list。如果哪天想改某一条重新执行对应的git config命令覆盖就行。3.2 生成SSH密钥并配置到托管平台用Git操作远程仓库有两种常用认证方式HTTPS和SSH。HTTPS方式每次推送代码要输账号密码虽然Git凭证管理器可以帮你记住但还是不如SSH密钥认证干净利落。SSH方式生成一对密钥公钥放到代码托管平台私钥留在本地之后推送代码时就不需要反复输入账号密码了。生成密钥前先检查一下是否已经存在ls -al ~/.ssh如果看到id_ed25519或id_rsa这类文件说明已经生成过密钥可以复用。否则执行ssh-keygen -t ed25519 -C 你注册平台时用的邮箱这里选ed25519算法是因为它比传统RSA算法更安全、密钥更短、生成速度也更快。如果你使用的托管平台或老系统不支持ed25519可以用-t rsa -b 4096生成长度4096位的RSA密钥。执行后会问你保存路径和密码短语passphrase。保存路径默认即可直接回车我建议初学者密码短语也不要设置因为每次用密钥时都会有额外交互容易让新手困惑。等以后你明白了passphrase的作用再给私钥加锁也不迟。生成完后查看公钥内容cat ~/.ssh/id_ed25519.pub复制输出的整段内容。然后登录你的代码托管平台GitHub、Gitee、GitLab都可以进入“设置 → SSH密钥”或“SSH公钥”页面把内容粘贴进去保存。测试连接ssh -T gitgithub.com如果看到类似“Hi 用户名! Youve successfully authenticated”的提示说明SSH配置成功。这里补充一个Windows上常见的坑如果你执行上面命令时报错Permission denied (publickey)先确认自己是不是把私钥路径弄错了或者私钥文件权限过大。Windows下对~/.ssh目录权限要求比较严格可以用下面两条命令调整chmod 700 ~/.ssh chmod 600 ~/.ssh/id_ed255193.3 让每次提交更省心的全局优化项我建议在正式使用Git之前先把这几个全局配置写进配置文件可以在很大程度上避免后续踩坑。# 默认分支名设为 main更主流的叫法 git config --global init.defaultBranch main # Git 命令输出颜色高亮 git config --global color.ui true # 不处理中文文件名转义解决中文文件名显示为乱码的问题 git config --global core.quotepath false # 缓存凭证避免每次都要输入账号密码 git config --global credential.helper manager-core其中core.quotepath false值得多说一句。默认情况下Git会把非ASCII字符的文件名转义成八进制形式你在Git Bash里看到的是一串\346\226\207\344\273\266之类的乱码而不是正常的中文文件名。把这项设为false中文文件名就能正常显示了。credential.helper manager-core在Windows上对应Git Credential Manager它会把密码或令牌加密存储在Windows凭据管理器中第一次输入后第二次开始就自动带上了。4. Git Bash使用与常用命令实战4.1 为什么推荐你用Git Bash而不是CMDGit装好后自带的Git Bash是Windows上体验最接近Linux终端的环境。它基于MinTTY和MSYS2实现支持大部分Unix命令比如ls、pwd、touch、grep、sed、awk等。这意味着你可以在Windows下练习Linux风格的文件操作后续用到更复杂的Shell脚本也能跑得通。相比之下CMD和PowerShell用的是另一套命令规则dir、type、copy粘贴复制快捷键的体验也差一些。对新手统一用Git Bash还有一个好处网上绝大多数Git教程都假定你在类Unix环境下执行命令用Git Bash可以减少和教程之间的“翻译”成本。4.2 从零到第一次提交的完整流程我这里用一个真实场景带大家走一遍基本流程。假设你建好了一个专门放学习项目的文件夹现在要把第一个项目托管到远程仓库。第一步初始化本地仓库cd /d/projects/my-first-project git init执行后文件夹里会多出一个隐藏的.git目录这就是Git的版本库所有的版本信息都存放在这里。第二步创建一个文件并让Git接管它echo # My First Project README.md git add README.md git statusgit add的作用是把文件从工作区加入暂存区。git status用于查看当前仓库的状态。你会在状态输出里看到Changes to be committed下面列着README.md意思是它已经被Git捕获为待提交状态。第三步提交git commit -m Initial commit-m参数后面跟的是本次提交的说明文字。好的提交说明应该清晰地表达“本次改了什么”比如“Fix login bug”、“Add user profile page”。尽量不要用“修改”、“更新”、“提交”这类泛泛的词日后翻历史记录的时候你一定会感谢自己当初写了清楚的说明。第四步推送到远程仓库。去代码托管平台新建一个空仓库拿到仓库地址后在本地添加远程源并推送git remote add origin gitgithub.com:用户名/仓库名.git git branch -M main git push -u origin maingit branch -M main把默认分支名重命名为main-u参数把本地main分支和远程main分支建立关联之后直接执行git push就能推送到对应的远程分支。4.3 分支、回滚与撤销操作的常用命令分支和回滚是Git的核心能力也是新手最容易绕晕的部分。我用最少的命令帮你建立操作框架。分支相关# 查看所有分支当前分支前会有*号 git branch # 新建并切换到新分支 git checkout -b feature/login # 切换分支 git checkout main # 或者用新版命令 git switch main # 合并分支先切换到目标分支再合并另一个分支进来 git merge feature/login # 删除已合并的分支 git branch -d feature/login回滚相关# 查看提交历史 git log --oneline # 输出示例a1b2c3d (HEAD - main) 修复登录页样式 # 撤销工作区的修改还没git add过的 git checkout -- 文件名 # 把暂存区的文件退回工作区已经git add但没commit git reset HEAD 文件名 # 回退到上一个提交同时保留改动在工作区 git reset --soft HEAD~1 # 回退到上一个提交丢弃改动 git reset --hard HEAD~1有个铁律值得刻在脑子里不要对已经推送远程的公共提交使用reset --hard。因为远程仓库的其他协作者可能已经基于那个提交做了后续操作你强行改写历史会导致大家的仓库分叉。对已推送的提交想要修正应该用git revert commitId它会生成一个反向提交来抵消目标提交的改动不会破坏历史线。5. 常见问题与排查技巧实录我整理了一份自己在教学和实际项目中遇到频率最高的问题清单每一条都是我亲历过、确实解决过的。5.1 安装阶段的问题安装时卡住不动。安装向导停在某个页面超过几分钟没反应。常见原因是安全软件拦截了Git安装程序对环境变量的修改或对部分系统目录的写入。解决方法是彻底退出安全软件后重装装完再重新启用。安装完成后提示“git不是内部或外部命令”。在CMD或PowerShell里输入git没反应。说明安装时PATH环境变量没配上或者安装的是绿色版。重装一次在调整PATH那一步务必选择第二个选项Git from the command line and also from 3rd-party software。如果重装后还是不行手动检查“系统属性 → 环境变量 → Path”确认里面有C:\Program Files\Git\cmd。安装后右键菜单没有Git Bash Here。参考前面2.3节的内容。5.2 使用过程中的高频报错报错信息可能原因解决办法fatal: not a git repository当前目录不是Git仓库确认已在仓库根目录执行过git initPlease tell me who you are没配置用户名和邮箱执行git config --global user.name和user.emailPermission denied (publickey)SSH公钥未添加到托管平台或私钥文件权限异常用ssh -T gitgithub.com测试检查公钥是否已粘贴检查私钥文件权限error: failed to push some refs远程有本地没有的提交先git pull --rebase再推送warning: LF will be replaced by CRLF系统换行符转换提示在全局配置中按3.3节设置换行符不为自动转换即可fatal: refusing to merge unrelated histories两个仓库没有共同祖先如确认安全使用git pull --allow-unrelated-histories5.3 换行符导致整个文件被标记为改动这个问题在团队协作中非常常见。现象是你只是打开文件保存了一下什么都没改git status却显示这个文件被修改了git diff显示整个文件的每一行都变了。原因就是前面安装步骤里提到的换行符配置。Windows默认CRLFLinux/macOS默认LF。如果仓库里原本是LF你用Windows的Git默认配置autocrlftrue检出时会被转换成CRLF再提交时又被转回LF导致Git认为你动了所有行。如果团队以Windows为主就让仓库统一用CRLF如果团队是跨系统协作最推荐的方式是使用.gitattributes文件在仓库层面固定换行符规则。新建一个.gitattributes文件放在仓库根目录内容写* textauto然后提交一次Git会根据仓库中现有文件的实际情况自动统一换行符规则。这个文件同样需要提交到远程确保每个协作者都使用同一套规则。5.4 Win11终端里中文乱码在Git Bash里正常但切到Windows Terminal或CMD时中文显示为乱码。这在Win11上经常出现本质上是字符集不一致导致的。Git Bash默认UTF-8编码Windows控制台部分老版本默认GBK。解决方法是在Git Bash里设置git config --global core.quotepath false然后用git config --global gui.encoding utf-8设置图形界面编码用git config --global i18n.commit.encoding utf-8和git config --global i18n.logoutputencoding utf-8保证提交和日志输出使用UTF-8。最后在Windows Terminal的设置里把控制台代码页改为UTF-8执行chcp 65001或者直接统一使用Git Bash就一劳永逸了。6. 实操心得从“能用”到“好用”的几个习惯教程写到这里Git的基本安装和配置已经覆盖完整了。最后根据我自己的实操经验分享几个让Git从“能用”变成“好用”的习惯。习惯一写好提交说明。每次提交时用一句话说清楚“为什么这么改”而不只是“改了什么东西”。比如“重构登录逻辑以支持第三方OAuth认证”远好于“更新登录页面”。团队复盘时这样的提交历史能帮你快速定位问题引入的版本。习惯二提交前先看差异。执行git commit之前先跑一遍git diff看看具体改了哪些内容避免把调试代码、临时打印、甚至敏感信息比如密码、密钥一并提交上去。密钥泄露进Git历史是灾难级的后期清理极其麻烦。习惯三小步提交频繁提交。一个功能拆成多个小提交每次提交都是完整且可运行的状态。这样做的好处是当某个改动引入Bug时你可以精准回退到出问题的那一次提交而不用被迫放弃整个功能的所有改动。我见过不少同事喜欢一天攒一个大提交出问题时只能全部推翻重来非常痛苦。习惯四利用别名提高效率。常用命令可以设置简写比如git config --global alias.st status git config --global alias.co checkout git config --global alias.br branch git config --global alias.lg log --oneline --graph --all --decorate之后输入git st就是git statusgit lg可以查看带图形的完整提交历史。这些别名会在你频繁使用Git后大幅提升操作效率。习惯五定期清理无效分支。已经合并的分支尽早删除本地远程都已无用的分支用git branch -d清理干净。分支不是越多越显得你工作饱和它只是代码管理工具干净整洁的分支列表才能让你在切换上下文时快速定位。6.1 面对陌生概念时该怎么继续学这篇文章覆盖了安装配置和基础操作但Git本身的概念体系远不止这些。如果你发现自己还想深入理解Git的工作机制我建议按这样的顺序往下学先彻底搞懂“工作区、暂存区、本地仓库、远程仓库”这四个概念之间的关系这是理解一切Git命令的地基。然后学合并的各种方式merge和rebase的区别、squash合并什么时候用。接着再学cherry-pick、stash、submodule这些进阶操作。最后等你对Git很熟之后可以去了解一下Git的底层对象模型blob、tree、commit懂了这个Git的绝大多数行为你都能自己推演出来。学Git没有捷径但也不用背命令。多用git help 命令查文档多在实际项目里操作比看任何教程都管用。6.2 关于开发环境的一点补充这篇文章的标题是Git安装及环境配置但搜索热词里还有不少关于Node.js、Vue、Python等环境配置的提问。如果在Git配置过程中你发现路径、环境变量这些概念比较陌生后续在配置Node.js、Python等开发环境时通常会遇到类似的环境变量配置问题。思路其实都一样把可执行文件的目录加入Path环境变量让系统任何位置都能直接调用对应的命令。把这次Git安装中理解到的环境变量概念迁移过去后面配置别的开发环境会顺手很多。如果你在安装配置过程中遇到了本文没覆盖到的报错不妨花点时间阅读错误信息的完整文本来定位问题的方向搜索结果自然会更准。Git的好处是它在全球有庞大的用户群你遇到的绝大多数坑别人早就踩过并写了解决方案了。
返回列表