十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

Git安装配置全攻略:从下载到SSH密钥的Windows实战教程

Git安装配置全攻略:从下载到SSH密钥的Windows实战教程 Git 保姆级完整下载、安装、环境配置、SSH 密钥全套教程作为 Windows 开发者你可能已经被无数次要求先装一下 Git却在下载页、安装向导、SSH 密钥之间来回折腾。2026 年的开发环境早已不是装个软件就能跑的年代VS Code 拉代码要 GitNode.js、Vue3 项目要 GitWindows 上的 Elasticsearch、Docker 同样离不开 Git。问题是大部分人装完之后只会git clone等到提交代码、连接远程仓库、配置免密登录时才被各种报错卡住。这篇教程就把整条链路一次讲透从 Git 官方安装包的选择、安装选项的逐项勾选到用户信息、换行符等基础配置再到 SSH 密钥的生成、添加、验证和多平台多账户管理最后把 VS Code 联动、远程服务器免密登录的常见坑也一并填上。不管你是刚接触 Git 的新手还是装过几次但没配明白的老手照着走一遍就能把环境彻底理顺。1. 2026 年了为什么 Windows 开发者还是要认认真真配一次 Git先说个反直觉的事实很多人以为 Git 只是个下载代码的工具所以装完就扔在那里等到要推送代码、参与团队协作时才手忙脚乱。实际上 Git 是一套完整的版本管理系统你在终端里敲下的每个命令、配置的每一项内容最终都会体现在你的提交记录、分支策略和远程协作方式里。这种装完就完事的心态往往会在三个场景里付出代价。第一个场景是身份信息不完整。Git 默认情况下不会替你决定你是谁如果你没有配置 user.name 和 user.email提交代码时 Git 会强行用系统用户名和主机名拼一个身份出来。一次两次可能无所谓但在多人协作的仓库里这种提交记录会让同事完全不知道这段代码是谁写的代码评审、问题追溯全都无从下手。第二个场景是 HTTPS 和 SSH 的混淆。2026 年的代码托管平台GitHub、GitLab、Gitee 等早已默认禁用弱加密协议如果你还在用密码走 HTTPS 方式推送代码大概率会被频繁要求输入账号密码甚至直接提示认证失败。SSH 密钥认证是当前最稳妥、最省事的方案但它的配置流程比装个 Git要多几步很多人恰恰卡在这几步。第三个场景是跨平台协作的换行符问题。Windows 用 CRLF回车换行作为文本行尾而 Linux 和 macOS 用 LF仅换行。如果你在 Windows 上配置不当改一行代码可能让 Git 觉得整个文件都变了Pull Request 里全是密密麻麻的差异代码评审基本没法看。这个问题只要你参与跨平台协作就一定会遇到越早配置越省心。所以说认真配一次 Git 不是洁癖而是给后面所有项目打地基。这篇教程把每一个配置项的来龙去脉都说清楚你要做的不只是照着敲命令还要理解每一步为什么这样做。接下来就从下载和安装开始。2. Git 官方安装包版本选择与安装选项逐项拆解2.1 从哪里下载选哪个版本Git 官网的下载地址是https://git-scm.com/downloads页面打开后会自动识别你的操作系统直接点击 Windows 版本即可。2026 年的 Git 官方安装包只有一个架构选项64 位。如果你的电脑还在跑 32 位系统那已经不是 Git 的问题而是整个系统都该升级了。国内用户如果官网下载速度不理想可以使用清华 TUNA 镜像源https://mirrors.tuna.tsinghua.edu.cn/git-for-windows/或者阿里云镜像源。这类镜像站同步频率很高版本号不会落后太多而且下载速度比直连官网稳定得多。我个人的习惯是优先官网获取最新稳定版官网慢就用镜像。Git 的版本号不需要追新选当前最新稳定版即可2026 年至少是 2.4x 以上的版本了功能已经非常成熟。下载完成后你会得到一个类似Git-2.x.x-64-bit.exe的安装文件大小在 50MB 到 70MB 左右。双击运行等待安装向导加载完毕接下来就是整个安装流程里最需要仔细看的选项配置环节。2.2 安装向导里的每个选项我建议你这样勾安装向导的第一个页面GNU General Public License直接 Next。Select Destination Location 选择安装目录默认的C:\Program Files\Git就好没有必要改到其他盘Git 本身不占多少空间后续升级也更省心。接下来几个页面容易让新手懵我逐个拆解Select Components选择组件这一页默认勾选的项基本合理我建议你在此基础上做两处调整。一是把Git Bash Here和Git GUI Here保持勾选这是 Windows 上最常用的右键快捷入口尤其是 Git Bash 几乎每天都会用到。二是Explorer integration下的Git Bash Here右键菜单建议保留但不需要额外勾选Git GUI Here的右键菜单GUI 工具实际使用频率低菜单里面项太多反而碍事。Associate .git* configuration files with the default text editor这一项建议勾选这样以后双击.gitconfig文件可以直接用文本编辑器打开排查配置问题会很方便。其他组件比如Scalar、Git LFS之类的除非你有明确需求否则保持默认即可。Select Start Menu Folder直接 NextSelect Default Editor Used by Git需要认真选一下。默认选项是 Vim但绝大多数 Windows 开发者并不熟悉 Vim 的操作方式。如果你平时用 VS Code直接选Use Visual Studio Code as Gits default editor如果没有 VS Code也可以选 Notepad 或者其他编辑器。这里的选择影响的是你执行git commit后需要输入提交信息时的编辑体验。选 Vim 不是不行但那种进去之后不知道按什么键退出的体验会直接劝退新手。Adjusting your PATH environment有两个选项默认是Git from the command line and also from 3rd-party software。千万不要手滑选成最高那项Use Git and optional Unix tools from Command Prompt它会把一堆 Unix 命令覆盖到系统的 PATH 中导致某些 Windows 自带命令行为异常。默认的推荐选项已经能让你在 CMD、PowerShell、Git Bash 里都能用git命令选它就够了。Choosing HTTPS transport backend保持默认的Use the native Windows Secure Channel library这是微软原生的 TLS 实现适配 Windows 的证书体系最省心。Configuring the line ending conversions是安装向导里最有分量的选择默认的Checkout Windows-style, commit Unix-style line endings其实就是把core.autocrlf设为true。这个方案在纯 Windows 环境下省心但跨平台协作时容易引发换行符问题更稳妥的做法在后面第 3 章专门说安装时先保持默认不动。Configuring the terminal emulator to use with Git Bash有两个选项Use MinTTY和Use Windows default console window。MinTTY 是功能更强的终端模拟器适配 Linux 风格的显示效果默认选择即可。如果你经常在 Windows Terminal 里用 Git Bash这个选项其实影响不大。最后几页关于git pull默认行为、凭证管理器、符号链接的选项全部保持默认值。安装完成后建议重启一遍终端窗口或者重启电脑让环境变量完全生效。注意安装向导里有个容易被忽略的选项是Enable symbolic link support默认不勾选。Windows 上创建符号链接通常需要管理员权限普通开发场景用不上不建议开启以免后续操作遇到权限报错。3. 安装完成后的三件套基础配置不做干净后面全是坑3.1 身份信息让每一次提交都实名制Git 安装完成后第一件事不是急着克隆代码而是告诉 Git 你是谁。打开 Git Bash依次执行两条命令git config --global user.name 你的名字 git config --global user.email 你的邮箱这里的名字和邮箱会出现在你所有的提交记录里。名字可以用中文也可以用英文建议使用团队内部统一的格式邮箱最好和你 GitHub或 GitLab/Gitee账号绑定的邮箱保持一致这样你在网页端提交的代码、代码评审、贡献统计都能正确关联到你的账号。验证配置是否生效可以运行git config --global --list你会看到类似这样的输出user.name你的名字 user.emailyour_emailexample.com如果你使用的是 2026 年的新版本 Git安装向导里可能已经询问过默认分支名称了。如果没有建议主动设置默认分支名为main这是当前各大托管平台和开源社区的主流约定git config --global init.defaultBranch main设置完成后以后执行git init创建的仓库默认分支就是main而不是master省去了手动改分支名或者被平台提示是否是旧版本的麻烦。3.2 默认编辑器别让 Vim 挡住你的第一次 commit如果你在安装向导那一步跳过了编辑器选择这里还有补救机会。执行git config --global core.editor code --wait这条命令把 VS Code 设置为 Git 的默认编辑器--wait参数让 Git 等到 VS Code 中的文件关闭后再继续执行。设置完成后执行git commit时弹出的提交信息编辑器就是 VS Code而不是劝退无数人的 Vim。如果你用 Notepad也可以设置成notepad -multiInst -notabbar -session $FileDir$但体验显然不如 VS Code 顺手。3.3 换行符策略Windows 协作开发的分水岭换行符问题是 Windows 开发者最容易忽略、也最容易引发莫名其妙冲突的配置。在解释配置之前先明确一个背景Git 仓库内部存储文本文件时默认建议统一使用 LFUnix 换行符。但 Windows 上的文本编辑器、终端工具传统上使用 CRLF。安装向导里选择的Checkout Windows-style, commit Unix-style line endings对应配置是core.autocrlftrue。它的行为是从仓库检出文件时自动转成 CRLF提交回仓库时自动转成 LF。这个方案在纯 Windows 单人或小团队开发时问题不大但一旦你的团队成员有的用 macOS、有的用 Linux就会出现一种经典现象你只改了一行代码提交时 Git 却提示有几百个文件发生变动全是换行符差异。跨平台团队更稳妥的策略是下面这种组合git config --global core.autocrlf false同时在仓库根目录创建.gitattributes文件内容如下* textauto *.sh text eollf *.bat text eolcrlf* textauto的含义是让 Git 根据文件内容自动判断是否作为文本处理并统一存储为 LF*.sh脚本在 Windows 上检出时也要保留 LF避免 shell 脚本因为换行符问题执行失败*.bat则明确使用 CRLF兼容老派批处理文件的习惯。如果你现在回头看自己已有的仓库发现换行符已经乱成一团可以执行git add --renormalize .后再重新提交Git 会按.gitattributes规则重新规范化文件的换行符。提示core.autocrlf的三种取值里true最省心但不适合跨平台input表示提交时转 LF、检出时不转适合确定所有人都在 Unix 系环境的场景false则是完全不干预。我个人在 2026 年的建议是纯 Windows 个人项目用true团队跨平台项目一律走false.gitattributes方案一劳永逸。4. SSH 密钥完整链路从生成密钥到免密推送的每一步4.1 为什么 I 强烈建议用 SSH 而不是 HTTPS很多人在克隆代码库的时候习惯直接复制 HTTPS 链接git clone之后每次推送都要输入账号密码。如果开启了双重认证密码输入更是麻烦因为 2026 年各大平台都已经不再允许直接用账号密码推代码你必须生成 Personal Access Token个人访问令牌来当密码用。SSH 密钥认证则完全没有这个问题你只需要在本地生成一对公钥和私钥把公钥放到代码托管平台之后所有 Git 操作都会自动走加密通道不需要再输入任何口令。好处是安全、方便、一次配置长久生效坏处是初次配置多几个步骤。本小节就把这条链路完整走一遍。4.2 检查并生成密钥ed25519 优先先检查本机是否已经存在 SSH 密钥。打开 Git Bash执行ls ~/.ssh如果目录下已经有id_ed25519.pub或者id_rsa.pub文件说明之前生成过密钥可以直接跳到 4.4 节使用没有必要重复生成。如果提示目录不存在或者目录为空就执行下面的命令生成新密钥ssh-keygen -t ed25519 -C your_emailexample.com-t ed25519指定密钥类型。Ed25519 是目前综合安全性椭圆曲线签名算法和性能都最优的选择生成的密钥短、速度快、安全性高主流的 GitHub、GitLab、Gitee 都支持。如果你的工作环境里有比较老旧的自建 Git 服务器可能只支持 RSA 密钥那就用ssh-keygen -t rsa -b 4096 -C your_emailexample.com生成过程中终端会问你保存路径直接按回车使用默认的~/.ssh/id_ed25519。紧接着会让你设置 passphrase口令短语这一步可以直接回车留空也可以输入一串密码短语。我建议在新手阶段先留空因为 passphrase 会增加每次使用密钥时的输入负担等你熟悉了ssh-agent的用法之后再补上也不迟。命令执行完成后你的用户目录下的.ssh文件夹里会多出两个文件id_ed25519是私钥id_ed25519.pub是公钥。私钥绝对不能泄露给任何人公钥才是要放到平台上的。4.3 把私钥加载到 ssh-agent为了避免每次 SSH 操作都要输入加密密钥的密码可以把私钥加载到ssh-agent这个后台代理程序里。Windows 10/11 自带的 OpenSSH 服务已经包含 ssh-agent但默认可能没有启动。在 Git Bash 里执行eval $(ssh-agent -s) ssh-add ~/.ssh/id_ed25519如果你设置了 passphrase第二条命令会让你输入一次之后该会话内就不再重复询问。如果你希望以后打开 PowerShell 或 CMD 也能自动使用 ssh-agent可以在管理员权限的 PowerShell 里执行Set-Service -Name ssh-agent -StartupType Automatic Start-Service ssh-agent这样设置后系统重启也能自动启动 ssh-agent 服务。提示如果你在 Git Bash 里执行ssh-add遇到 Could not open a connection to your authentication agent 的报错说明 ssh-agent 进程没有启动。先执行eval $(ssh-agent -s)再看是否解决。如果用的是 PowerShell请确保 ssh-agent 服务正在运行。4.4 把公钥添加 GitHub、GitLab 或 Gitee现在需要把公钥的内容复制到托管平台。在 Git Bash 里执行cat ~/.ssh/id_ed25519.pub你会看到一串以ssh-ed25519开头的长字符串比如ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIxxxx... your_emailexample.com把这一整行复制下来确保没有换行、没有多余空格。也可以用命令直接复制到剪贴板clip ~/.ssh/id_ed25519.pub然后登录对应的代码托管平台进入设置页面GitHub右上角头像 → Settings → SSH and GPG keys → New SSH keyGitLab头像 → Preferences → SSH KeysGitee码云头像 → 设置 → SSH 公钥把复制的内容粘贴进去写上标题比如Windows 2026保存即可。验证是否配置成功在 Git Bash 里执行ssh -T gitgithub.com如果这是第一次连接 GitHub会提示确认服务器的指纹输入yes回车即可。看到类似下面的输出就说明 SSH 密钥已经生效了Hi yourusername! Youve successfully authenticated, but GitHub does not provide shell access.GitLab 的验证命令是ssh -T gitgitlab.comGitee 是ssh -T gitgitee.com成功时会分别显示对应平台的验证信息。此时再回去克隆仓库把仓库地址换成 SSH 格式的gitgithub.com:用户名/仓库名.git克隆之后推送、拉取就再也不需要输入账号密码了。如果你之前已经用 HTTPS 地址克隆过仓库可以用下面的命令切换到 SSH 地址git remote set-url origin gitgithub.com:用户名/仓库名.git然后执行git remote -v确认远程地址已经变成 SSH 格式。5. 多平台多账户的 SSH 密钥管理GitHub、GitLab、Gitee 共存5.1 一台电脑、多个平台你不需要多个密钥很多人在配置好 GitHub 之后又注册了 GitLab 和 Gitee然后想是不是每个平台都要生成一套新密钥其实不需要。同一个公钥可以添加到任意多个平台账号里私钥也不需要重复生成。你把同一把公钥分别粘贴到 GitHub、GitLab、Gitee 的 SSH keys 设置里全部都能生效。这种做法简单粗暴但有一个隐私方面的考量如果你在两个平台的用户名不同平台可能会通过公钥关联识别出这是同一个人。如果你不希望暴露这种关联或者公司和个人账号要严格隔离那就需要下面这套多密钥管理方案。5.2 多把密钥 SSH config 文件管理假设我要生成两把密钥一把用于个人 GitHub一把用于公司 GitLabssh-keygen -t ed25519 -C personalexample.com -f ~/.ssh/id_ed25519_github ssh-keygen -t ed25519 -C workexample.com -f ~/.ssh/id_ed25519_gitlab-f参数指定了密钥文件的名称。生成后在~/.ssh目录下创建如果不存在config文件用文本编辑器写入# GitHub - 个人账号 Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519_github IdentitiesOnly yes # GitLab - 公司账号 Host gitlab.com HostName gitlab.com User git IdentityFile ~/.ssh/id_ed25519_gitlab IdentitiesOnly yesHost是你在命令行中看到的主机别名这里直接写成与真实主机名一致最简单的场景可以一一对应IdentityFile指定这个主机使用哪把私钥IdentitiesOnly yes的作用是告诉 SSH 只使用这里指定的密钥不要拿其他密钥挨个去试避免认证混乱。配置保存后验证一下ssh -T gitgithub.com ssh -T gitgitlab.com两个平台应该分别显示对应的账号名。以后你在克隆 GitLab 仓库时即使仓库地址写着gitgitlab.com:group/project.gitSSH 也会自动使用id_ed25519_gitlab这把私钥来进行认证不需要你手动干预。5.3 同一平台多个账号用 Host 别名区分如果你在一个平台上同时持有两个账号比如一个私人号、一个公司号情况比 5.2 节要稍微复杂一点因为同一台机器对同一主机名只能由 config 决定使用哪把密钥。解决办法是给同一个真实主机设置不同的 Host 别名。假设真实地址是github.com个人账号想用github.com直接访问公司账号想通过别名github-work来访问config 可以这样写# 个人账号 Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519_github_personal # 公司账号注意 Host 不同 Host github-work HostName github.com User git IdentityFile ~/.ssh/id_ed25519_github_work这样配置后公司账号对应的克隆地址就不是gitgithub.com:组织/仓库.git而是gitgithub-work:组织/仓库.git。SSH 看到github-work就会自动去找对应的配置使用公司账号的私钥。如果你已经克隆了仓库要切换成另一个账号的身份执行git remote set-url origin gitgithub-work:组织/仓库.git这种用别名区分的方式在团队协作中很常见特别是那些既用个人 GitHub 摸鱼、又用公司 GitHub 干活的场景明明白白分清楚是最省心的。6. 与 VS Code 联动、SSH 远程开发与高频问题排查6.1 让 VS Code 的终端和源代码管理彻底跑起来Git 配置好之后VS Code 里的绝大多数 Git 操作会开箱即用左侧的源代码管理面板可以看到变更文件Ctrl反引号打开的终端也能直接使用git 命令。但很多人的 VS Code 终端默认打开的是 PowerShell 或 CMD在 Windows 上我更推荐把默认终端改成 Git Bash因为很多 Git 教学和脚本命令都默认用 Bash 语法。点击 VS Code 右下角的终端选项卡选择选择默认配置文件然后选Git Bash。或者直接在设置里搜索terminal.integrated.profiles.windows把 Git Bash 放到配置的第一位。改完后重新打开终端你在 Git Bash 里配置的所有命令都直接可用包括git config、ssh、ls这些。VS Code 的源代码管理面板配合 Git 还有个非常好用的细节在更改区域右键文件可以看到Discard Changes丢弃更改、Stage Changes暂存更改等功能这比命令行操作上手门槛低得多。提交代码时在输入框里写提交信息按 CtrlEnter 就能提交。不过我还是建议你有空的时候把git status、git add、git commit、git push、git pull、git log这六条命令练熟图形界面再方便命令行永远是排查问题的基础。6.2 用同一套 SSH 密钥连接远程服务器免密登录这一节解决的是一个常见的诉求本地配好了 SSH 密钥希望连接到远程 Linux 服务器、NAS 或者树莓派时也不用输密码。远程服务器的免密登录本质上是把你本地的公钥追加到远程服务器用户的authorized_keys文件里。在本地 Git Bash 执行cat ~/.ssh/id_ed25519.pub复制输出内容,然后 SSH 登录服务器或者直接用支持粘贴密钥的网页管理后台执行mkdir -p ~/.ssh chmod 700 ~/.ssh echo 你的公钥内容 ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keyschmod的作用是收紧权限.ssh目录只允许所有者访问authorized_keys文件只允许读写。如果权限过宽OpenSSH 会拒绝信任该文件即使公钥内容是对的也会报Permission denied。这也是新手配置免密登录最容易踩的坑因为 Windows 上一般不关心权限位但 Linux 服务器的 SSH 服务检查得很严。设置完成后本地执行ssh 用户名服务器地址不会再提示输入密码。如果你还要在远程服务器上拉取 Git 仓库那个仓库的认证信息属于服务器上的配置问题不在本文范围内但思路是相通的。6.3 高频报错排查清单从 Permission denied 到 22 端口超时报错 1Permission denied (publickey)这个报错在 SSH 验证时最常出现核心原因是服务器没有找到与你的公钥匹配的密钥。排查顺序如下执行ssh -vT gitgithub.com查看详细调试信息确认 SSH 实际使用了哪把私钥输出里会有Offering public key之类的行。如果使用的私钥不是我们希望的那把检查~/.ssh/config文件中的IdentityFile是否指向了正确路径。如果密钥对没有问题检查公钥是否完整、平台端是否正确保存注意不要粘贴时漏掉开头的ssh-ed25519或末尾的邮箱注释。检查本机 ssh-agent 中是否加载了私钥执行ssh-add -l如果列表为空执行ssh-add ~/.ssh/id_ed25519。报错 2Connection timed out或者连接 22 端口超时这种情况通常是网络环境对 22 端口有限制而不是 Git 配置本身的问题。如果你确实能正常访问平台网站但 SSH 一直超时可以改用 SSH over HTTPS 443 端口的方案。在~/.ssh/config中加入Host github.com HostName ssh.github.com Port 443 User git这是 GitHub 官方支持的方式很多网络环境下能解决 SSH 连不上 GitHub 的问题。GitLab 也支持类似的配置具体端口和主机名可以在官方文档里查到。报错 3WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED这个提示通常发生在远程服务器重装系统或者密钥重建之后说明本地保存的 known_hosts 记录与当前服务器的指纹不匹配。处理方法是一条命令ssh-keygen -R github.com-R参数会删除该主机在 known_hosts 中的旧记录下次连接时会重新询问是否信任新的指纹。报错 4warning: LF will be replaced by CRLF这个警告本身不是错误它只是在提醒你本地换行符策略正在转换。如果仓库里已经有.gitattributes文件并且团队统一了规范这个警告一般不会频繁出现。如果你觉得它很烦可以按第 3 章的方法检查一下全局core.autocrlf配置确认是否符合团队约定。6.4 从能跑到顺手我给新手的四个建议第一养成看报错详情的习惯。很多问题表面上是一句Permission denied实际原因藏在ssh -vT或git -c core.quotepathfalse status这类加参数命令的输出日志里。别怕英文报错把关键行复制到搜索引擎一搜就有答案。第二所有的全局配置改动前先看一眼当前值。执行git config --global --list --show-origin它会同时显示每条配置来自哪个文件方便你定位到底是安装向导写入的、还是自己改的、还是某个工具覆盖的。排查为什么我的配置不生效这类问题时会非常有用。第三私钥文件永远不要上传到任何云端存储、Git 仓库或聊天工具。公钥丢了可以重新生成私钥泄露就等于把你所有关联了这把密钥的服务器和平台账号都暴露了。一旦怀疑私钥泄露正确的做法是在平台删除对应的公钥本地重新生成一对新密钥再重新配置一遍。第四配一次之后记得备份配置说明。哪怕只是在本地笔记里记下我的全局 user.name 是 XXX、SSH 密钥路径是 ~/.ssh/id_ed25519半年后换电脑时都会省下大量时间。换新电脑时的操作思路就是新机器装 Git、生成新密钥、配置身份信息然后把公钥重新加到平台不需要也不可能把旧电脑的私钥迁移过去。我个人在实际配置中的体会是与其每次遇到问题临时上网搜索不如下载安装后的半小时内把身份、编辑器、换行符、SSH 这几件事一次性处理干净。Git 本身的安装只需要几分钟但这几分钟的配置质量决定了你未来每一次git push是顺畅还是煎熬。照着这篇教程走完一遍后面所有项目的开发流程都会因此顺畅不少。
返回列表