新闻详情

新闻详情

首页 / 资讯中心 / 详情

Windows上Git安装与SSH密钥配置完全指南:从零到推送代码

发布时间:2026/9/16 9:34:55来源:尧图网络
Windows上Git安装与SSH密钥配置完全指南:从零到推送代码
刚接触Git的Windows用户十个里有八个会栽在同一个地方下载安装一路Next很快就完事git --version也正常可真要往远程仓库推代码要么Permission denied要么卡在SSH密钥上半天弄不明白。这篇教程我从下载安装讲起一直写到SSH密钥配好、代码能顺畅推送全程用的是我在Windows上反复验证过的最稳路径。适合完全零基础的新手也适合那些装过Git但SSH一直没真正弄通的半新手。读完照着操作基本能一步到位。先说一个总原则Windows上装Git真正有技术含量的事情发生在安装完成之后。安装过程里大部分选项用默认值就可以但有几个关键节点必须知道它在问什么否则后面返工的代价比想象中大得多。1. 下载安装的第一步确定版本和下载渠道1.1 先看清你的系统是64位还是32位这个问题在2026年听起来有点多余但我在帮人排查问题时真遇到过在32位系统上硬装64位软件的情况。Win11已经全面64位Win10也几乎见不到32位了不过保险起见装之前花十秒钟确认一下右键此电脑→属性或者按WinR输入dxdiag回车看操作系统一栏。如果显示基于x64的处理器下载64位版本如果显示基于x86下载32位版本。判断系统架构这件事直接决定你下载哪个安装包。选错了也不是装不上而是安装过程会提示不是有效的Win32应用程序直接拒绝执行。1.2 官网下载与版本选择的逻辑Git的下载渠道其实很多国内也有各种镜像站但我的建议始终只有一个去官网git-scm.com下载。原因很朴素——官网永远是最新版本不会有被篡改的风险也不会捆绑乱七八糟的东西。进入官网首页页面上通常有一个很大的下载按钮会自动识别你的操作系统。如果你需要手动选择就点Downloads→Windows进入下载列表页面。Windows版本一般提供两个文件一个是纯64位版本文件名类似Git-2.xx.x-64-bit.exe一个是纯32位版本Git-2.xx.x-32-bit.exe。你可能还会看到.tar.gz或.zip的压缩包格式那是便携版用的新手不用管。下载时认准.exe结尾的安装程序就行。版本号本身不太需要纠结——Git的版本迭代非常快新版本几乎都是向下兼容的。你不需要追求最新但也不建议用几年前的旧版本。旧版Git在Windows上有一些历史遗留问题比如对ed25519密钥算法的支持不完整或者对某些SSH配置解析有问题这些在新版本里都陆续修掉了。如果电脑上已经装过旧版Git直接覆盖安装新版即可配置文件和密钥不会被清除。1.3 便携版和安装版怎么选Git官网还提供便携版就是把Git解压到一个文件夹里直接用不写注册表、不占系统全局环境变量。这个东西对U盘党、或者IT管理员批量部署有一定价值对普通用户则完全不推荐。原因有三个便携版不会自动写入系统PATH意味着你在PowerShell或者CMD里敲git命令会提示找不到便携版不提供右键菜单的Git Bash Here入口每次都要手动打开Bash再切目录体验非常割裂便携版没有图形化的凭证管理器集成后面配置SSH密钥时少了一层便利。所以老老实实下载.exe安装版下一步开始逐项过安装向导。2. 安装向导逐项过一遍每个选项背后的逻辑安装向导大部分界面直接点Next就行但有几个界面承载了关键决策下面按出现顺序逐个说明。2.1 PATH环境变量最容易埋雷的一项这个界面标题是Adjusting your PATH environment三个单选按钮的本意是决定Git命令能在哪些地方被直接调用而它也是我见过新手踩坑最多的地方。第一项Use Git from Git Bash only的含义是只有Git自带的Bash窗口里才能识别git命令CMD和PowerShell里识别不了。选了这一项之后你在VS Code的终端里敲git会得到git不是内部或外部命令的报错新手最容易在这里卡住因为VS Code用的默认终端是PowerShell。第二项Git from the command line and also from 3rd-party software的含义是把Git加入系统PATHCMD、PowerShell、VS Code终端都能直接用git命令。这一项是推荐选项也是绝大多数教程默认你选择的选项。第三项Use Git and optional Unix tools from the Command Prompt则会引入一堆Unix工具甚至覆盖Windows系统自带的find、sort等命令容易造成系统级命令冲突一般只有特殊需求的人才会勾选。安装时选第二项这是最稳妥的。2.2 换行符转换团队协作的第一大坑Configuring the line ending conversions界面三个选项是Checkout Windows-style, commit Unix-style line endings拉取代码时转成Windows的CRLF换行提交时转回LF换行Checkout as-is, commit Unix-style line endings拉取时保持原样提交时统一转成LFCheckout as-is, commit as-is完全不做任何转换对Windows用户来说第一项是默认推荐也是我建议的选择。它的好处是你在本地用记事本、VS Code打开文件时不会遇到换行符显示异常同时推送到远程仓库时统一成LF格式不会把Windows的CRLF污染进仓库。我见过不少团队因为换行符没配好导致一次提交的diff里全是整文件改动——实际上只是换行符变了代码逻辑一行没动。这种问题排查起来极度恶心。如果你在纯Windows环境的团队第一项就够用如果有跨平台协作后面我会在最后一章补一个更高级的.gitattributes方案。2.3 默认编辑器与终端模拟器的取舍Choosing the default editor used by Git界面默认是Vim。Vim对经常用命令行的老手来说没什么问题但新手在git commit时如果误入了Vim界面会被卡住出不来——网上那些怎么退出Vim的求助帖一大半都是从这里来的。如果电脑上装了VS Code建议直接选Use Visual Studio Code as Gits default editor如果没装也可以选Notepad等文本编辑器。这一步不影响功能纯粹是使用体验。Configuring the terminal emulator to use with Git Bash界面默认选项是Use MinTTY。MinTTY比Windows自带控制台窗口的交互体验更好支持调整窗口大小、更好的文本渲染、更方便的复制粘贴快捷键。虽然不是所有场景都必须用MinTTY但Windows默认的conhost.exe在处理Vim、less这类全屏交互工具时经常渲染错乱所以MinTTY依然是更合适的选择。2.4 其他安装选项的快速说明Select Components页面默认选项即可但注意Git Bash Here和Git GUI Here这两个右键菜单项很有用建议保留。Adjusting your PATH之后还有Choosing the SSH executable新版Git默认使用自带OpenSSH选择Use bundled OpenSSH即可。这一项和后面配置SSH密钥直接相关选默认值就是对的。Configuring extra options里有一个Enable file system caching默认勾选保留它有助于提升大仓库的操作性能。Configuring experimental options里通常有一个Enable symbolic links不建议新手勾选。Windows的符号链接需要管理员权限而且不少Windows文件系统场景下行为怪异勾了反而容易出问题。安装完成后右键桌面任意位置如果能看到Git Bash Here说明安装基本成功了。打开Git Bash输入git --version看到类似git version 2.46.0.windows.1的输出就说明Git已经就位。3. 装完先别急着用把三处全局配置改对3.1 用户名和邮箱git提交记录里的身份IDGit提交代码时每次commit都会携带提交者的用户名和邮箱这个信息独立于你在GitHub或Gitee上注册的账号。换句话说即使你在GitHub上叫Alice只要本机Git配置的用户名是Bob提交记录里显示的提交者就是Bob——这会导致你的提交无法归到自己的账号名下。配置方法很简单打开Git Bash执行两行命令git config --global user.name 你的名字 git config --global user.email 你的邮箱这里的--global表示全局生效也就是这台电脑上的所有仓库都用这个身份。如果你希望某个特定仓库使用不同的身份在该仓库目录下不加--global重新配置即可局部配置会覆盖全局配置。建议用户名用GitHub/Gitee上的昵称邮箱用注册时绑定的邮箱这样提交记录的头像和账号能正确关联上。3.2 用git config检查全局配置配置完成后用git config --list查看所有生效的配置项。你会在输出里看到user.name你的名字和user.email你的邮箱。如果来回配置过多次想知道某个具体配置项的值也可以用git config --global user.name git config --global user.email分别查看。这一步看似简单但值得养成习惯——很多SSH连接问题排查到最后发现是配置里的用户名打错了。配置文件的物理位置在C:\Users\你的用户名\.gitconfig用记事本就能打开里面是所有--global级别的配置项。如果哪天想删除某个配置项可以直接编辑这个文件也可以执行git config --global --unset 配置项名。3.3 代理配置只在确实需要时才动有些公司内网环境访问外部Git仓库是通过代理服务器中转的这种情况下Git需要单独配置代理否则连接会卡住或超时。如果你确定自己的网络环境需要代理可以在Git Bash里配置git config --global http.proxy http://127.0.0.1:7890 git config --global https.proxy http://127.0.0.1:7890端口号要根据你实际使用的代理工具来填。但如果你不确定或者网络环境本身正常就不要动任何代理配置——我曾经见过有人照着网上的帖子乱配了一通代理结果Git访问变得奇慢无比最后还得挨个--unset清掉。记住Git默认能连上的时候别画蛇添足。4. SSH密钥从生成到推送一条龙实操4.1 为什么优先用SSH而不是HTTPS连接远程仓库有两种主流方式HTTPS和SSH。HTTPS的优点是配置简单克隆时输入账号密码就行但缺点是每次推送代码都要认证即使配了凭据管理器也远不如SSH来得顺畅。SSH的优点是配置一次之后永久免密推送、拉取、切换分支都不需要再输入任何账号信息而且SSH本身是加密传输安全性有保障。GitHub、Gitee等平台对SSH的支持非常成熟我个人的习惯是只要是长期使用的仓库一律用SSH方式克隆。HTTPS只用于偶尔一次的快速克隆。4.2 生成密钥ed25519还是RSA打开Git Bash先检查是否已经有密钥ls -la ~/.ssh/如果看到id_ed25519和id_ed25519.pub这对文件说明之前生成过可以跳过生成步骤。如果目录不存在或文件为空就执行ssh-keygen -t ed25519 -C 你的邮箱命令解释-t ed25519指定密钥算法。ed25519是比RSA更现代的算法密钥更短、生成更快、安全性更高-C添加注释通常是邮箱仅用于标记密钥来源执行后系统会提示你选择密钥保存位置默认是/c/Users/你的用户名/.ssh/id_ed25519直接回车用默认路径就行。接着会提示设置passphrase密码短语这是给私钥加的一层保护每次使用私钥时都要输入。如果你不想每次都输密码可以直接回车留空。考虑到这是本地私钥的安全防线我的建议是设置一个然后配合后文的ssh-agent实现一次输入、长期免密的效果。如果某些老旧的GitLab服务器或内网系统不支持ed25519那就改用RSAssh-keygen -t rsa -b 4096 -C 你的邮箱两条命令生成的文件名不同注意区分。4.3 让ssh-agent记住你的私钥设置了passphrase的私钥如果每次都手动输入太麻烦可以借助ssh-agent把私钥加载到内存中。Git Bash里执行eval $(ssh-agent -s) ssh-add ~/.ssh/id_ed25519第一条命令启动ssh-agent进程第二条命令把私钥加进去。执行ssh-add后会提示输入passphrase输入一次即可之后在当前会话中就不再需要重复输入了。这里有一个Windows特有的坑如果直接用Windows自带的PowerShell来执行ssh-add有可能提示找不到ssh-agent服务。这时可以用管理员权限打开PowerShell把OpenSSH Authentication Agent服务设为自动启动Get-Service ssh-agent Set-Service -Name ssh-agent -StartupType Automatic Start-Service ssh-agent做完之后PowerShell里的ssh-add也能正常工作了。4.4 把公钥交给GitHub/Gitee/GitLab私钥留在本地公钥需要上传到代码托管平台。查看公钥内容cat ~/.ssh/id_ed25519.pub输出长这样ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... 你的邮箱复制整段内容。然后登录你用的代码平台以GitHub为例右上角头像→Settings→SSH and GPG keys→New SSH keyTitle随便填比如Windows-laptopKey框粘贴公钥内容保存。Gitee的位置在设置→安全设置→SSH公钥。GitLab在Preferences→SSH Keys。三者的操作逻辑完全一样核心就一句话把.pub文件的完整内容贴到平台后台。4.5 第一次连接测试与trust提示公钥添加完成后测试连通性ssh -T gitgithub.com如果是Gitee执行ssh -T gitgitee.comGitLab按实际域名替换。第一次连接时系统会提示The authenticity of host github.com (IP) cant be established. Are you sure you want to continue connecting (yes/no)?这是SSH在询问是否信任这台主机输入yes回车该主机指纹会被记入~/.ssh/known_hosts文件之后就不会再提示了。如果一切正常GitHub会返回Hi 你的用户名! Youve successfully authenticated, but GitHub does not provide shell access.看到这行字说明SSH密钥链路已经完全打通接下来就能用git clone gitgithub.com:用户名/仓库名.git这样的SSH地址克隆或推送代码了。5. 连不上远程仓库完整排查链路与SSH over 443配置过程通常不会一帆风顺下面按实际排查顺序整理最常遇到的问题。5.1 高频报错对照表报错信息可能原因排查方向Permission denied (publickey)公钥没上传或本地用的私钥和平台上的公钥不匹配检查ssh-add -l是否有密钥检查平台后台公钥是否完整Host key verification failed远程主机指纹不在known_hosts中或主机指纹发生变化第一次连接输入yes如果是主机换了密钥删除known_hosts里的旧记录Connection timed out网络层不通可能被防火墙拦截尝试SSH over 443方案或检查网络Connection refused目标服务器的22端口拒绝连接确认服务器是否运行确认端口是否被服务商屏蔽Could not resolve hostname github.comDNS解析失败检查网络和DNS设置5.2 从ssh -vT开始的排查顺序遇到连接问题别急着百度先自己动手排查。第一步确认本地是否有密钥被加载ssh-add -l如果输出The agent has no identities说明私钥没加载成功回头重做4.3的步骤。如果能看到密钥指纹但依然连不上第二步用详细模式查看连接过程ssh -vT gitgithub.com输出会拉出一大段debug信息其中几个关键位置值得关注debug1: Offering public key: ...说明本机正在向服务器提供密钥如果能走到这一步说明本地侧基本没问题debug1: Authentications that can continue: publickey说明服务器还在等待匹配的密钥如果直接卡在debug1: Connecting to github.com [IP] port 22后没有下文说明22端口出站被卡了第三步核对平台后台的公钥是否完整。很多人复制公钥时只复制了前半段或者不小心复制了多一个换行符都会导致认证失败。5.3 SSH over 443官方支持的备用通道有些网络环境会限制22端口出站连接但443端口几乎都是放行的——因为HTTPS流量走的就是443。GitHub官方专门提供了一个备用SSH服务监听在443端口地址是ssh.github.com。测试方法ssh -T -p 443 gitssh.github.com如果这条命令返回Hi 你的用户名!说明443端口是通的。之后在~/.ssh/config文件里添加如下配置让Git自动走443端口Host github.com HostName ssh.github.com Port 443 User git保存后重新执行ssh -T gitgithub.comGit会自动切换到443端口连接。这里的原理很简单SSH协议本身支持指定任意端口而Git在连接时完全听从~/.ssh/config的指挥。5.4 多账号场景用config文件管理多把密钥如果你同时使用GitHub和公司内部的GitLab或者有多个GitHub账号一把密钥就不够用了。正确的做法是为每个平台生成独立的密钥然后用~/.ssh/config文件做路由。假设你有两个密钥id_ed25519_github和id_ed25519_gitlab在~/.ssh/config里这样写Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519_github Host gitlab.company.com HostName gitlab.company.com User git IdentityFile ~/.ssh/id_ed25519_gitlabHost后面的值是连接别名HostName才是真实域名IdentityFile指定该域名使用哪把私钥。配置完成后分别用ssh -T gitgithub.com和ssh -T gitgitlab.company.com测试两条链路互不干扰。网上很多多账号配置写得很玄乎实际上就是在config文件里多写几个区块而已。6. 日常使用中值得顺手配好的几个点6.1 Git Credential ManagerHTTPS方式的免密方案虽然我推荐SSH但HTTPS场景依然广泛存在——比如某些企业GitLab只开放HTTPS或者临时克隆一个公开仓库。如果使用HTTPS协议且不想每次输密码Git自带的Credential Manager能帮上忙。这个组件在安装Git时默认被选中它的机制是第一次推代码时弹出凭据窗口输入一次账号密码后凭据会被安全存储之后自动复用。检查是否安装成功git credential-manager --version如果输出版本号说明组件可用。现在用HTTPS克隆并推送一次代码系统会自动处理凭据存储基本不需要手动干预。6.2 别名配置少敲几个字母Git的命令有些比较长比如看提交历史要敲git log --oneline --graph --decorate每次都打一遍很烦人。用别名简化git config --global alias.lg log --oneline --graph --decorate --all git config --global alias.co checkout git config --global alias.br branch git config --global alias.st status配置之后git lg就能输出漂亮的提交历史图git co等价于git checkout。对于高频操作别名的收益是不可忽视的。6.3 跨平台换行符的终极方案.gitattributes回到2.2节提到的换行符问题。如果你的团队里有Windows、macOS、Linux三种系统的开发者单靠core.autocrlf很难彻底统一最好的方案是在仓库根目录放一个.gitattributes文件强制指定文件的换行符规则* textauto *.js text eollf *.md text eollf *.bat text eolcrlf这个文件的意思大部分文件交给Git自动处理换行符.js、.md等文本文件统一用LF.bat批处理文件强制用CRLF因为Windows的批处理文件在LF下可能运行异常。.gitattributes比全局配置更可靠因为它是写进仓库的全团队共享。如果你在维护一个跨平台项目建议尽早加上这个文件并在提交前执行git add --renormalize .把历史文件的换行符统一一次。我在实际配置新电脑时整个流程压缩下来大概十分钟下载安装五分钟全局配置和SSH密钥三分钟测试连接两分钟。这套流程重复了很多次最深的体会是——Git在Windows上绝大多数问题都不是Git本身的问题而是环境变量配错、换行符混乱、SSH密钥链路没接通这三个老问题。希望这篇教程能帮你一次性把这三点全部搞定少走我当年走过的弯路。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

TB67S261步进驱动实战:解决抖动丢步与热保护的工程闭环方案 2026/9/16 10:11:10

TB67S261步进驱动实战:解决抖动丢步与热保护的工程闭环方案

1. 为什么选 TB67S261 R7KA8D2KFLCAC 这对组合?不是为了堆参数,而是解决真实工况里的“抖、堵、丢步”我第一次在工业分拣线现场看到那台步进电机——标称 1.8/step 的 NEMA23,带 1:5 减速箱,负载是 3.2kg 的金属托盘。上电后空载…

阅读更多 →
降AI率4.8元和8元千字价格差一倍,效果差多少?4款工具亲测对比 2026/9/16 10:11:10

降AI率4.8元和8元千字价格差一倍,效果差多少?4款工具亲测对比

降AI率4.8元和8元千字价格差一倍,效果差多少?4款工具亲测对比 核心结论: 降AI率最稳的工具是嘎嘎降AI——降AI率从60%压到5%以下,嘎嘎降AI采用双引擎驱动,降AI率达标率99.26%,嘎嘎降AI支持9大检测平台&…

阅读更多 →
论文降AI率Kimi写的62%怎么过?亲测嘎嘎降AI两步从62%降到5% 2026/9/16 10:11:10

论文降AI率Kimi写的62%怎么过?亲测嘎嘎降AI两步从62%降到5%

论文降AI率Kimi写的62%怎么过?亲测嘎嘎降AI两步从62%降到5% 核心结论: 论文降AI率最快的方法是用专业工具嘎嘎降AI——降AI率从60%降到5%左右,嘎嘎降AI双引擎驱动,降AI率99.26%达标,嘎嘎降AI不达标可退款,建…

阅读更多 →
论文降AI率理工科不伤术语怎么降?3步从78%压到5%答辩顺利通过 2026/9/16 10:11:10

论文降AI率理工科不伤术语怎么降?3步从78%压到5%答辩顺利通过

论文降AI率理工科不伤术语怎么降?3步从78%压到5%答辩顺利通过 核心结论: 论文降AI率最快的方法是用专业工具嘎嘎降AI——降AI率从60%降到5%左右,嘎嘎降AI双引擎驱动,降AI率99.26%达标,嘎嘎降AI不达标可退款&#xff0c…

阅读更多 →
论文降AI率手写论文AIGC率高怎么办?亲测嘎嘎降AI从62%压到5.8% 2026/9/16 10:11:10

论文降AI率手写论文AIGC率高怎么办?亲测嘎嘎降AI从62%压到5.8%

论文降AI率手写论文AIGC率高怎么办?亲测嘎嘎降AI从62%压到5.8% 核心结论: 论文降AI率最快的方法是用专业工具嘎嘎降AI——降AI率从60%降到5%左右,嘎嘎降AI双引擎驱动,降AI率99.26%达标,嘎嘎降AI不达标可退款&#xff0…

阅读更多 →
英语字母组合发音规律与实战训练方法 2026/9/16 10:08:10

英语字母组合发音规律与实战训练方法

1. 为什么字母组合发音是英语学习的关键突破口背单词永远是英语学习者的痛点。我们见过太多人抱着词汇书从abandon开始,反复抄写却收效甚微。问题的核心在于传统方法把单词当作无规律的字母堆砌,而实际上英语是典型的拼音文字——约84%的单词符合发音规则…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞