ARTICLE DETAIL

资讯详情

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

Git下载安装与配置实战:SSH Key、换行符与IDE集成避坑指南

Git下载安装与配置实战:SSH Key、换行符与IDE集成避坑指南 先说明一下我的判断很多人觉得“下载和安装 Git”就是去官网点两下“下一步”跟装个播放器没区别。但我在实际带新人和帮同事排查问题的时候发现真正浪费时间的从来不是安装本身而是装完之后那一堆绕不开的配置——用户名邮箱、换行符、SSH Key、IDE 集成。这篇就把“下载安装 Git”这件事从头到尾拆开讲清楚包括每个安装选项到底该选什么、为什么这么选以及装完以后最容易踩的几个坑怎么填。建议你一边看一边操作十分钟左右就能把环境收拾利索。1. 下载之前先把这几件事搞清楚1.1 Git 到底解决什么问题Git 是一个分布式版本控制系统。先说人话它帮你记录项目里每个文件的每一次改动并且支持你随时回到任意历史版本还允许你拉出多条“平行世界”分支同时开发最后再合并回来。团队协作时大家互不干扰地改代码最后通过 Git 合并到一起谁改了什么一目了然。跟游戏存档做个类比你玩单机游戏每过一个关卡就手动存一次档打不过 BOSS 就回档重来Git 就是给整个项目做存档而且这个存档是每个开发者本地都有一份完整副本的。所谓“分布式”就是不需要依赖一台中心服务器才能干活——即使远程仓库挂了你本地的历史记录仍然是完整的这对后续学习 Git 命令、理解分支合并都至关重要。1.2 版本选择不是越新越好Git 的版本号迭代很快但作为日常使用者你没有必要追最新版。我的建议是只要能正常安装、命令不报错选官网推荐的稳定版本就行。Windows 用户要注意区分 32 位和 64 位安装包现在大部分电脑都是 64 位但如果你还在用老机器务必确认一下系统类型在“设置—系统—关于”里能看到。还有一个特别常见的坑不要下载第三方“绿色版”“优化版”的 Git。这类版本要么内置了来路不明的修改要么缺少关键组件出了问题你很难排查。老老实实从官网下载或者用我后面提到的国内镜像站下载这是最稳妥的路线。1.3 安装前需要做什么准备安装 Git 之前先把正在运行的相关工具关掉尤其是编辑器VS Code、IDEA 等和终端。虽然安装过程一般不会强占这些进程但安装器在配置 PATH 环境变量时如果编辑器正在运行可能导致新配置的环境变量无法被识别装完以后还要重启电脑才能生效。另外确认一下磁盘空间。Git 本体很小通常一两百兆就够了但如果你的用户目录下已经积累了大量的项目文件、缓存磁盘空间不足会导致安装中断。我遇到过一例安装到一半报错最后发现是 C 盘只剩 200MB清理后重装就好了。2. 各平台下载与安装的完整实操2.1 Windows 平台安装逐步讲解Windows 是大多数初学者接触 Git 的第一站。访问 Git 官网git-scm.com下载页选择对应的 Windows 版本即可。官网下载速度如果不太理想可以使用国内镜像站比如华为云、阿里云的 Git for Windows 镜像路径和官网保持同步版本一般也不会落后太多。拿到 exe 安装包之后双击运行。安装过程有几个关键选项需要认真对待第一个是Select Components选择组件。这里默认勾选了“Git Bash Here”和“Git GUI Here”建议保留。这两个选项会给右键菜单加上“在此处打开 Git Bash”和“打开 Git GUI”的入口日常使用非常方便。Git Bash 是 Windows 下最常用的 Git 命令行环境它模拟了 Linux 终端操作体验后面讲命令都会基于它。第二个是Default editor默认编辑器。这里默认是 Vim对新手极不友好——你随便敲一个git commit想写提交信息结果被卡在 Vim 里不知道怎么退出。我建议如果你装了 VS Code就直接在选项里选择 Visual Studio Code如果没装也别慌可以先保持 Vim后面用命令把默认编辑器改成 Notepad 或自己常用的编辑器。第三个是Adjusting your PATH调整 PATH 环境变量。这一步几乎是最重要的。选项有三个“Use Git from Git Bash only”只在 Git Bash 里能用 Git 命令普通 CMD 和 PowerShell 里用不了“Git from the command line and also from 3rd-party software”推荐选这个它把 Git 加入系统 PATHCMD、PowerShell、Git Bash 都能直接使用git命令“Use Git and optional Unix tools from Command Prompt”不仅加入 Git还引入了一些 Unix 工具不推荐容易跟系统已有命令冲突。第四个是Configuring the line ending conversions配置换行符转换默认选项是“Checkout Windows-style, commit Unix-style line endings”。这个选项的意思是从仓库检出代码时转换成 Windows 的 CRLF 换行提交回仓库时转换成 Unix 的 LF 换行。这个默认选择对 Windows 用户是合理的建议直接保持默认具体原因放到后面第 3 部分详细讲。第五个是Use MinTTY使用 MinTTY 终端默认选择即可。MinTTY 比 Windows 默认终端好用不少字体、复制粘贴体验都更好。后面的“Enable file system caching”“Enable Git Credential Manager”这些默认选项也保留不动。安装完成之后你可以通过“开始菜单—Git—Git Bash”打开终端输入git --version确认安装是否成功。如果提示“git 不是内部或外部命令”说明 PATH 部分没选对后面第 6 部分会讲解决办法。2.2 macOS 平台安装的三种方式macOS 装 Git 有三种方式按推荐程度排序第一种是用系统自带的命令行工具在“终端”里执行xcode-select --install系统会弹出安装提示。这个方式装的是 Apple 维护的 Git版本会比官网稍旧一点但对大多数人完全够用。好处是零配置、跟系统兼容性最好。第二种是官网下载 dmg 安装包直接拖拽安装。与 Windows 版一样同样支持国内镜像站下载。第三种是如果你安装了 Homebrew直接在终端执行brew install git。这里有个细节如果你之前已经通过其他方式装过 Gitbrew 可能提示你已经存在需要先brew uninstall git再重装或者用brew link --overwrite git覆盖系统版本。Homebrew 装的 Git 一般是最新的适合想用新特性的人。2.3 Linux 平台安装只需一条命令Linux 各个发行版安装 Git 非常简单基本就是包管理器一条命令Debian / Ubuntu 系sudo apt update sudo apt install git新版本 Ubuntu 也可以用sudo apt install gitCentOS / RHEL 7 及以下sudo yum install gitFedora / RHEL 8sudo dnf install git。装完以后同样用git --version验证。Linux 上极少遇到 PATH 问题因为包管理器会自动把可执行文件放到/usr/bin下。2.4 装完先验证一下不管哪个平台装完之后第一件事就是在终端执行git --version看到类似git version 2.39.2.windows.1的输出就说明安装成功。接着执行git help如果能看到一堆命令说明也正常。这里我多说一句我见过有人装完 Git 之后满心欢喜地打开 IDE发现 IDE 里还是无法识别 Git。别着急下结论先回到终端里确认 Git 命令是否能用。如果终端里能用、IDE 里不能用那是 IDE 没配对路径的问题跟安装本身无关第 5 部分会专门讲怎么在 IDEA 里配置。3. 安装完成后的三件必做配置3.1 设置用户名和邮箱这是最容易跳过、但影响最深远的配置。你的每一次提交记录里都会带上这里设置的用户名和邮箱别人通过历史记录看到的就是这个信息。如果没设置或者乱设提交记录里就会出现一串奇怪的字符串后面想改历史的成本很高。打开终端Windows 用户打开 Git Bash依次执行git config --global user.name 你的名字 git config --global user.email 你的邮箱--global表示这台机器上的所有 Git 仓库都使用这个身份。如果你想针对某个项目单独设置身份就进入那个项目目录去掉--global重新执行一遍。查看当前配置使用git config --list可以确认是否设置成功。另外强烈建议顺手设置一下默认分支名现在新仓库默认分支叫master但很多平台已经默认使用main了。执行git config --global init.defaultBranch main避免以后每次都要手动改。3.2 处理换行符与编码的坑Windows、macOS、Linux 的换行符不一样Windows 用 CRLF回车换行Unix 系用 LF换行。如果不对 Git 做换行符配置就会出现“整个文件都被标记为修改”的诡异情况比如同事在 Linux 上提交了一行代码你在 Windows 上拉下来一看Git 提示整个文件都冲突了。Windows 用户建议执行git config --global core.autocrlf true这个配置的作用是检出代码时自动转成 CRLF提交时自动转回 LF。之前安装过程中那个默认选项就是这个意思这里再明确一遍目的就是让 Windows 和 Linux 同事之间互相切换项目时不至于被换行符折磨。macOS 和 Linux 用户执行git config --global core.autocrlf inputinput的含义是提交时转成 LF检出时保持原样。因为 Unix 系本来就是 LF 为主不需要额外转换。编码相关的坑也值得提前填掉。Git 默认对中文文件名会做转义提交信息里的中文也可能出现乱码。执行下面两条命令能避免大部分中文问题git config --global core.quotepath false git config --global gui.encoding utf-8core.quotepath false以后git status里显示中文文件名就是可读的中文而不是一串\344\270\255...转义字符。3.3 生成并配置 SSH Key如果你打算跟 GitHub、Gitee、GitLab 这类代码托管平台交互强烈建议配置 SSH Key。配好之后git clone、git push、git pull都不需要反复输入账号密码而且比 HTTPS 方式更稳定。生成 SSH Key 的命令ssh-keygen -t ed25519 -C 你的邮箱执行后一路回车即可。如果你电脑上的 SSH 版本比较老不支持 ed25519 算法可以换用ssh-keygen -t rsa -b 4096 -C 你的邮箱默认情况下公钥会生成在~/.ssh/id_ed25519.pub。用cat ~/.ssh/id_ed25519.pub把内容复制出来然后登录你的代码托管平台在“设置—SSH Keys”里粘贴保存。之后测试连接ssh -T gitgithub.com如果看到 “Youve successfully authenticated” 之类的提示说明 SSH Key 配置成功。如果你同时使用多个平台比如 GitHub 和 Gitee每个平台的 Key 最好分开生成。需要在~/.ssh/config文件里配置不同的别名比如Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519_github Host gitee.com HostName gitee.com User git IdentityFile ~/.ssh/id_ed25519_gitee这里多说一句我之前遇到过一种情况生成的 Key 在 GitHub 上能用但换到另一个平台就提示权限拒绝排查半天发现是 Key 文件没有区分。生成多个 Key 的时候ssh-keygen会让你输入保存路径如果你全部一路回车就会覆盖掉之前生成的 Key。这个细节很容易被忽略。4. 验证安装并跑通第一条 Git 命令4.1 用 git init 验证安装的有效性配置完成后找一个空目录做一次最简单的验证。Windows 用户可以在某个工作目录下右键“Git Bash Here”然后执行git init看到Initialized empty Git repository就说明 Git 正常工作。接着手动创建一个文本文件比如test.txt然后执行git add test.txt git commit -m first commit第一次提交完成后再执行git log看提交记录通常能看到你刚设置的用户名和邮箱。这套流程跑通你的 Git 环境就算是真正可用了。4.2 高频命令速查表如果你刚开始学 Git下面这张表直接收藏即可。我在带新人时前期基本就是反复用这几条命令作用使用频率git init初始化一个本地仓库新建项目时git status查看当前工作区状态每天无数次git add .把当前所有改动加入暂存区提交前必用git commit -m 说明提交暂存区的改动提交代码时git log --oneline查看提交历史简洁版查记录时git branch查看本地分支分支操作前git checkout 分支名切换分支开发中常用git merge 分支名合并指定分支到当前分支合并代码时git pull拉取远程更新并合并多人在线协作时git push推送本地提交到远程代码同步时这里提醒一个细节git checkout既可以切换分支也可以丢弃工作区修改两个功能混在一起容易造成误操作。Git 在较新版本中推荐使用git switch 分支名来切换分支、git restore 文件名来丢弃修改语义更清晰。如果你是新学的可以直接从switch和restore开始。4.3 让 Git 进入 IDE命令行会用之后你会发现绝大多数操作还是在 IDE 里完成的。IDEA、VS Code、Eclipse 都已经内置了 Git 支持但首次使用时要让 IDE 找到 Git 可执行文件。以 IDEA 为例打开菜单“File—Settings—Version Control—Git”在 “Path to Git executable” 里填上 Git 的安装路径。Windows 上通常是C:\Program Files\Git\bin\git.exeIDEA 一般会自动识别如果没识别就手动浏览选择。填好之后IDEA 顶部菜单栏会出现 Git 相关的图标右下角也会显示当前分支。如果你用 VS Code左侧竖条里的“源代码管理器”图标就是 Git 面板终端里能用 GitVS Code 就基本不需要额外配置。这里顺便回应一下热搜词里频繁出现的需求IDEA 创建新项目拉取 Git。操作流程其实是这样的打开 IDEA选择“File—New—Project from Version Control”粘贴远程仓库的 HTTPS 或 SSH 地址点 Clone 就能把代码拉下来。如果是第一次用IDEA 会要求你填账号或选择 SSH Key填对一次之后基本都能记住凭证。5. 从 IDE 拉取代码到完成第一次分支合并5.1 在 IDEA 里配好 Git 可执行文件继续围绕“idea 创建新项目拉取 git”这个场景来说。第一步还是确认 IDEA 能连接到 Git。打开“Settings—Version Control—Git”看右侧的 “Path to Git executable” 是否显示版本号如果显示说明连接成功。这一步很关键因为有时候你代码拉不下来不是克隆地址的问题而是 IDEA 根本不知道 Git 命令在哪里。然后准备一个远程仓库地址。仓库源可以是 GitHub、Gitee、GitLab也可以是自己公司内网搭建的 Git 服务。作为演示你可以在任意托管平台新建一个空仓库拿到仓库地址。回到 IDEA选择“File—New—Project from Version Control”会弹出一个输入框。这里填 HTTPS 地址就直接拉取填 SSH 地址则要求你提前配好 SSH Key。我给你的建议是能用 HTTPS 就先 HTTPS等后面熟悉了再切换 SSH减少前期折腾。录入地址后点击 Clone等进度条走完项目就出现在本地了。拉取下来之后还需要给项目配置 SDK 和构建工具。这一步经常让新人困惑——明明代码都拉下来了为什么 IDEA 还报错因为 Git 只负责把代码文件拉下来不负责安装 JDK、Maven 或 Gradle。打开“File—Project Structure—Project”把 SDK 选到本机已有的 JDK 版本如果是 Maven 项目在“Settings—Build Tools—Maven”里设置好 Maven 主目录和仓库路径依赖会自动下载。5.2 远程仓库拉取的两种方式“拉取 Git 代码”其实有两个层面的意思第一次把整个项目拉下来叫clone之后同步更新叫pull。两者很容易混淆。clone只有一次发生在项目还不存在于本地的时候。执行git clone 仓库地址会把整个仓库历史完整复制到当前目录。pull是日常更新。已经 clone 过之后每次需要拿别人新提交的代码就执行git pull它等价于先git fetch把远程最新提交下载到本地再git merge合并到当前分支。在多人在同一个分支上协作时每天上班第一件事拉一下pull能减少很多冲突。在 IDEA 里clone 之后就进入了正常的版本管理界面。右下角分支名称旁边有一个刷新图标点一下就是拉取远程更新。提交代码则是选中要提交的文件按快捷键CtrlK填写提交信息再CtrlShiftK推送远程。5.3 第一次分支合并怎么操作分支合并是 Git 里最核心也最容易出问题的一个操作。这里我结合一个非常常见的场景来讲你有一个主分支main现在要开发一个新功能于是创建了一个分支feature/login。功能开发完想把代码合并回main。第一步在 IDEA 右下角点击当前分支名选择“New Branch”输入feature/login创建完成之后自动切换到这个分支。第二步在feature/login分支上正常提交代码多提交几次都可以。第三步切回main分支再点击当前分支名选择“Merge into Current”在弹出的列表里选中feature/login。IDEA 会执行合并如果没有任何冲突代码直接就被合并过来了如果有冲突会列出冲突文件你需要逐个打开处理。冲突的格式是这样的文件里会有一段 HEAD和 feature/login包裹的区域分别代表两个分支的代码。你要做的就是改成一个最终版本然后把冲突标记删除。处理完后在 IDEA 的合并弹窗里标记为已解决提交合并结果。这里补充一个命令行对应的操作方便你在没有 IDE 的环境中处理git checkout main git merge feature/login命令行合并时冲突提示会直接显示在终端里你会看到CONFLICT (content)的字样。处理方式和 IDEA 完全一样只是要在编辑器里手动改冲突区域改完再执行git add和git commit完成合并收尾。6. 新手最容易踩的坑及排查实录6.1 提示“git 不是内部或外部命令”这个报错基本只在 Windows 出现。原因通常只有一个安装时没把 Git 加入 PATH 环境变量或者在修改 PATH 时不小心把 Git 路径删了。解决办法有两条路如果是安装时没选对那重新运行安装包在 “Adjusting your PATH” 步骤选择第二个选项“Git from the command line and also from 3rd-party software”然后一路下一步完成修复。如果不方便重装那就手动添加环境变量右键“此电脑—属性—高级系统设置—环境变量”在系统变量 Path 中新建一条把 Git 的 bin 目录如C:\Program Files\Git\bin加进去。改完后重新打开终端。6.2 安装完出现 SSL certificate problem操作任何一个远程仓库时如果报错包含SSL certificate problem: unable to get local issuer certificate通常是本机缺少可用的 CA 证书或者系统时间和真实时间偏差太大。先检查系统时间这个原因经常被忽略——如果你的电脑时间不对TLS 证书验证一定会失败。时间没问题再考虑升级 Git 版本老版本的 Git 自带的证书库不完整。实在着急用可以临时执行git config --global http.sslVerify false关闭 SSL 验证但请注意这会降低安全性只在确定网络环境可信的前提下临时用解决后要执行git config --global http.sslVerify true恢复。6.3 中文文件名和提交信息乱码在 Windows 的 Git Bash 里Git 默认显示中文文件名是一串转义编码比如\346\265\213\350\257\225.txt。这不是文件坏了是 Git 把非 ASCII 字符转义了。执行一条命令git config --global core.quotepath false就能解决让 Git 直接显示中文。提交信息乱码则是另一个原因Git 默认把提交信息按UTF-8解析但如果终端区域设置不是 UTF-8就可能显示乱码。Windows 上建议把 Git Bash 的字符集设为 UTF-8方法是在 Git Bash 窗口右键“Options—Text—Locale”里选择zh_CNCharacter set 选择UTF-8。如果还不生效就配置git config --global i18n.commitencoding utf-8。6.4 下载慢或下载中断每次说到 Git 下载都有人因为官网访问慢或者下载到一半中断而放弃。解决方案是使用国内镜像站。华为云镜像、阿里云镜像、腾讯软件源都提供了Git for Windows和 macOS 安装包的同步下载速度稳定很多。注意选择跟官网一致的版本号避免安装包版本混乱。6.5 默认分支名总是 master新初始化的仓库默认分支是master但现在主流平台都默认main。与其每次新建仓库都手动改不如一劳永逸地配置git config --global init.defaultBranch main这样以后执行git init创建的仓库默认分支就是main跟 GitHub 等平台保持一致省去很多不必要的分支改名麻烦。7. 装完 Git 之后我最后悔没早知道的几件事最后基于我个人这些年踩过的坑补充几个装完 Git 之后值得尽早做的事。第一把命令别名配置好。Git 支持自定义命令别名比如git config --global alias.st status、git config --global alias.lg log --oneline --graph --all。lg这个别名配合--graph参数可以很直观地看到分支合并的关系图比裸敲git log好用太多。我一开始用原生命令敲了很久后来配置了别名就再也回不去了。第二重视.gitignore文件。很多新人装好 Git 就兴奋地提交代码结果把target、node_modules、.idea这些目录也提交了上去。提交之后清理非常麻烦。建议新建仓库第一件事就是写好.gitignore把编译产物、IDE 配置、系统文件都排除掉。Java 项目参考 IDEA 的模板Node 项目用 GitHub 官方提供的 Node 模板基本够用。第三每次提交信息别乱写。我见过很多仓库里的提交信息是“111”“update”“aaa”过两个月回头看完全不知道当初为什么改。提交信息写得稍微具体一点比如“修复登录页面在 Safari 下的样式错位”对以后追溯历史记录帮助巨大。我个人的习惯是一个提交只做一件事提交信息尽量说清楚原因而不是只写“改了什么文件”。下载安装 Git 本身只是个起点真正让你受益的是装完之后养成的这些配置习惯和操作规范。把这些基础打好后面学习分支管理、冲突解决、团队协作工作流都会顺畅很多。按照我在第 2 到第 5 部分的步骤走完你应该已经有了一个顺手、稳定的 Git 环境接下来就放心大胆地多创建几个仓库试试命令吧。
返回列表