ARTICLE DETAIL

资讯详情

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

Git下载安装与配置全教程:从零到首次提交的完整指南

Git下载安装与配置全教程:从零到首次提交的完整指南 人人都经历过那个阶段项目文件夹里塞满了项目最终版.zip、项目最终版2.zip、项目最终版_再也不改.zip。我是从这种文件备份大法里逃出来的人后来真正让我把版本管理这件事想明白的工具就是 Git。这篇博文不讲虚的就围绕下载和安装 Git这件事把从零到能用的完整路径走一遍顺便把安装过程中那些默认选项背后的含义、装完之后的必要配置、以及连接 IDEA、远程仓库、分支合并这些高频操作一并解决掉。适合刚接触代码管理的新手也适合装过几次但始终没搞懂安装选项的人。1. 为什么要用 Git版本管理是最值得先搞懂的事1.1 文件备份大法的痛对比一下就有答案你肯定遇到过这种情况写了几天的代码改来改去最后发现还是三天前的版本能跑。如果是靠文件复制备份你能找到三天前的版本吗能但代价是满屏的v1、v2、final、final2而且你根本记不清每个版本之间改了什么。Git 解决的就是这个问题它把你每一次有意义的修改记录成一个提交commit像游戏存档一样任何时候都能回到任意一个存档点还能看到每个存档之间到底动了哪些文件、哪些行。多人协作的场景里Git 的价值更明显。传统方式是一个人改完打包发给另一个人合并时全靠手工比对。Git 给每个人一个完整的本地仓库大家各自提交最后由一个人把所有人的修改合并起来。现在几乎所有互联网公司都把 Git 作为代码管理的底座GitHub、Gitee、GitLab 这些托管平台都是在 Git 之上做的二次封装。你下载安装的 Git是那个真正干活的本地引擎。1.2 下载之前先把这3个概念分清第一次接触这个概念的人容易把三样东西搞混Git、GitHub、Git GUI。Git 是核心是 Linus Torvalds 开发的那个分布式版本控制系统本质是一堆在命令行里运行的命令。你下载安装的就是它。GitHub 和 Gitee 是远程托管平台你把本地仓库的代码推送到这些平台上保存、协作它们不是 Git 本身而是寄存代码的中转站。Git GUI 指的是图形界面工具比如 GitKraken、TortoiseGit它们包装了 Git 命令让你用鼠标操作但底层调用的还是你安装的这个 Git。我见过有人用了半年 GitHub Desktop 和 IDEA 的图形界面却压根没在命令行敲过git commit遇到图形工具覆盖不到的场景就完全懵了。所以我的建议是装完 Git 先老老实实把命令行基本命令跑熟再回去用图形界面你会发现很多之前看不懂的操作一下就通了。1.3 如何选择适合自己的 Git 版本进入官网 git-scm.com首页会自动识别当前操作系统点击下载按钮就好。需要注意两点系统位数和版本类型。Windows 下安装包通常有 32 位x86和 64 位x64之分现在的电脑基本都是 64 位但如果你用的是老机器先右键此电脑查看属性确认一下。版本类型方面官网提供的都是稳定版你可能会看到类似2.47.1这种版本号数字越大代表功能越新。对绝大多数人来说直接下载最新的稳定版即可没必要追历史版本新版本修复了旧版本的已知 bug安全性也更好。另外如果你用的是 Linux系统自带的软件源里通常也有 Git但版本可能偏旧后面我会讲怎么处理。提示下载时认准 git-scm.com 官方域名不要从第三方下载站下载。那种高速下载器安装完之后桌面多出一堆全家桶软件的教训我一哥们已经用亲身经历帮大家测过了。2. Windows 安装完整教程每一步选项都给你说透2.1 从哪里下载官方渠道的下载方法打开 git-scm.com页面上会显示最新的版本信息点Download for Windows按钮就能拿到 64 位安装包。如果你需要其他版本点 Download 页面里的Windows链接能看到多个安装包选项64-bit Git for Windows Setup常规安装包推荐绝大多数人用。64-bit Git for Windows Portable便携版适合放在 U 盘里安装时不写入系统注册表。32-bit Git for Windows Setup老机器专用。下载速度如果不太理想可以用国内高校的开源软件镜像站比如清华大学的 tuna 镜像源、中科大的软件源里面都会同步 Git for Windows 的安装包。这类镜像站的更新会有一定的延迟但用于安装完全没问题。不建议用任何下载加速器或第三方下载站源码被替换的风险完全不值得冒。2.2 安装向导里那些选项到底怎么选双击安装包进入向导后一路点 Next 也可以但有几个选项我强烈建议你搞清楚因为它们直接影响后面的使用体验。选择组件Select Components这一步默认勾选的项目里有两项尤其重要Git Bash Here和Git GUI Here。这两项会在你的右键菜单里加上Git Bash和Git GUI入口。Git Bash 是一个运行在 Windows 上的模拟终端环境里面用的是类 Linux 的命令语法很多教程里的命令都是基于 Bash 的所以我建议保留这两个勾选。Add a Git Bash Profile to Windows Terminal如果勾上能在 Windows Terminal 里直接打开 Git Bash有这习惯的人可以留着。默认编辑器Choosing the default editor这一步默认是 Vim。如果你没用过 Vim第一次在 Git 里需要写提交说明时会被卡在怎么退出 Vim这个千古难题上答案是按 Esc 后输入:wq回车。我建议直接在这里选成你熟悉的编辑器比如 Visual Studio Code 或者 Notepad选完之后 Git 用到的编辑器就会是你选的那个写提交信息时体验友好得多。调整 PATH 环境变量Adjusting your PATH这一步有三个选项Use Git from Git Bash only只有 Git Bash 里能用 git 命令CMD 和 PowerShell 里不行。Git from the command line and also from 3rd-party software推荐把 Git 加入系统 PATH你在任意终端都能执行 git 命令。Use Git and optional Unix tools from the Command Prompt不推荐它会把大量 Unix 命令覆盖到 Windows 系统命令里容易引起混乱。绝大多数教程都会让你用第二种因为开发时命令行操作文件、脚本调用都是常态只把 Git 塞进 Bash 里会到处碰壁。HTTPS 传输后端Choosing the HTTPS transport backend默认选Use the OpenSSL library。直接保持默认就好。它负责你用 HTTPS 方式克隆远程仓库时如何验证服务器的 SSL 证书。OpenSSL 这个选项对 GitHub、Gitee 等主流的平台的证书验证都没问题。**行结束符转换Configuring the line ending conversions**这一步是新手最容易踩坑的地方。Windows 系统换行用的是回车加换行CRLFLinux 和 macOS 用的是换行LF。如果 Git 不做任何处理同一个文件在不同系统间就会产生大量整个文件都被修改的假象。默认选项是Checkout Windows-style, commit Unix-style line endings意思是检出代码到本地时转成 Windows 的 CRLF提交时转回 LF。多人协作时如果队友大多用 Windows选默认就好如果你的项目需要在 Linux 服务器上跑日常脚本也可以选第二个选项按文件原有格式不做转换。我的建议是新手先选默认等你在不同系统间来回切时踩了坑再回过头来理解这个选项也不迟。终端模拟器Choosing the terminal emulator默认选Use MinTTY。MinTTY 比 Windows 默认的 Console 窗口表现好支持更好的字体、颜色和快捷键而且和 Git Bash 的配合更流畅。这里保持默认即可。其他几个选项比如Default Git branch name默认分支名新版本会建议你用main老版本习惯用master两者没有本质区别保持默认即可。git pull 的行为、凭据管理器这两项保持默认就好凭据管理器Git Credential Manager留着是必要的不然每次 HTTPS 拉取远程仓库都会让你输账号密码。2.3 装完怎么验证三条命令确认安装成功安装完成后在任意文件夹空白处右键选择Git Bash Here在弹出的终端里依次输入以下命令git --version git config --global user.name git config --global user.email第一条命令会输出你安装的 Git 版本号比如git version 2.47.1.windows.1能看到就说明安装成功。第二、三条命令是用来检查全局配置的如果相对卡在空输出别急第三步我会专门讲配置。既然走到了命令行顺手把 Windows 上的右键菜单熟悉一下你会发现Git Bash Here这个入口的使用频率远远高于桌面图标它能让你在任意文件夹直接打开终端省去来回 cd 目录的麻烦。3. macOS 和 Linux 安装一份差异对比清单3.1 macOS 两条安装路线包管理器 vs 安装包macOS 装 Git 有两个主流路径。第一是下载官网提供的安装包安装后 Git 会被放在/usr/local/git下优点是图形化、官方维护缺点是后续想升级 Git 版本时还得重新去官网下载。第二是通过 Homebrew 安装命令只有一行brew install gitHomebrew 装完的 Git 在/usr/local/opt/git升级时执行brew upgrade git就好日常维护更省心。我个人推荐用 Homebrew一个原因是它是 macOS 开发者装机必装的东西既然早晚要装不如统一用它管另一个原因是它能自动处理 Git 的依赖比如 OpenSSL 等动态库省掉各种编译冲突的麻烦。macOS 还隐藏着一个系统自带 Git的问题。就算你没装过某些 Xcode 相关操作会触发系统装一个老旧版本的 Gitgit --version可能显示git version 2.39.x。我的建议是如果只是单纯用 Git 做版本控制系统自带版本也够用但如果安装过程中报错或者版本过旧还是用 Homebrew 替换一下比较干净。3.2 Linux 各发行版的安装命令Linux 不同发行版用的软件包管理器不一样命令也不同。Debian/Ubuntu 系sudo apt update sudo apt install gitCentOS/RHEL/Red Hat 系sudo yum install gitFedora 用 dnfsudo dnf install git装完之后同样用git --version验证。需要注意软件源里的 Git 版本可能偏旧比如某些 CentOS 默认源里带的还是 2.x 的早期版本。如果项目对 Git 版本有要求或者你想用更新的功能有两个办法一是配置发行版的软件源补充仓库二是在官网下载源码编译安装。源码编译是个体力活依赖多、耗时长不是特殊需求我不推荐。记住能用包管理器解决的别手动编译系统级的东西让包管理器管会更省心。Linux 下还有一个细节如果你的系统里同时存在多个 Git 版本执行which git看看当前使用的是哪个路径如果指向了系统自带版本要注意修改 PATH 优先级。3.3 无论哪个平台装完先做的三项基础配置Git 安装完成后第一件事不是跑代码而是做身份配置。在终端执行git config --global user.name 你的名字 git config --global user.email 你的邮箱这两条配置写入的是~/.gitconfig文件。为什么重要因为 Git 每次提交时都会把这两项信息写进提交记录里别人在代码仓库里看到的提交人就是你设置的名字和邮箱。如果不配置Git 在提交时可能会提示Please tell me who you are并把提交卡住。第三个配置是我个人强烈建议每个新人都做一下的git config --global init.defaultBranch main这一条把仓库默认分支名设为main避免新版本 Git 初始化仓库时出现master和其他人main不一致的混淆。另外Windows 用户如果遇到中文乱码问题还可以加一条git config --global core.quotepath false这条配置的作用我后面在问题排查里会专门讲。配置完成后用git config --list可以查看当前所有配置项确认刚才的设置已经生效。4. 从下载完成到第一次提交4步跑通完整流程4.1 本地仓库初始化init、add、commit 一条龙安装和基础配置做完接下来是实操环节。选择一个项目目录打开终端进入该目录执行git init这条命令会在当前目录生成一个隐藏的.git文件夹这个文件夹就是仓库的数据库。之后你对这个目录做的所有版本记录都保存在这里。随便写一个文件然后执行git add . git commit -m 第一次提交git add .是把当前目录所有改动加入暂存区git commit才是真正生成一个存档点。这两条命令的组合频率会贯穿你整个 Git 使用生涯。提交完成后用git log --oneline能看到刚才生成的提交记录。这里有一个容易绕晕的概念暂存区。你可以把它理解成一个候选席你决定哪些改动进入本次提交就先git add把它们请进候选席再git commit一次性定稿。这样同一个文件的不同部分也可以分多次提交非常灵活。4.2 配好 SSH 密钥免密连接远程仓库的关键本地仓库建立后下一步是把它和远程仓库对接。这里强烈建议你配置 SSH 密钥而不是每次都用 HTTPS 输账号密码。SSH 方式的好处是配置一次之后push 和 pull 都不需要输入用户名密码而且加密传输更安全。生成密钥的命令如下ssh-keygen -t ed25519 -C 你的邮箱一路回车默认保存在~/.ssh/id_ed25519.pub。然后查看公钥内容cat ~/.ssh/id_ed25519.pub把输出的整段内容复制下来登录你的代码托管平台GitHub、Gitee或者公司内部的 GitLab在设置里找到 SSH Keys 入口把公钥粘贴进去保存。GitHub 的入口是Settings - SSH and GPG keysGitee 的入口是头像 - 设置 - SSH 公钥。配置完成后用ssh -T gitgithub.com测试连通性如果返回欢迎信息就代表配置成功。如果你所在团队的代码托管在 Gitee 这类国内平台操作方式完全一样只是地址换成gitgitee.com:用户名/仓库名.git。提示id_ed25519.pub是公钥可以放心给别人看对应的id_ed25519是私钥绝不能泄露也不能把它提交到代码仓库里否则就意味着拿到你私钥的人可以以你的身份往仓库里推代码。4.3 在 IDEA 里拉取 Git 项目新版 Toolbox 的操作路径很多 Java 和前后端开发者习惯在 IntelliJ IDEA 里直接操作 Git。这里有个高频操作从远程仓库拉取clone项目。IDEA 启动后在主界面点击Get from VCS或者菜单栏File - New - Project from Version Control在弹出的对话框里粘贴远程仓库 URL。URL 有两种格式SSH 格式gitgithub.com:用户名/仓库名.git和 HTTPS 格式https://github.com/用户名/仓库名.git。如果使用的 SSH URLIDEA 会读取你本机~/.ssh下的密钥文件前提是 IDEA 能定位到 Git 可执行文件。你可以打开File - Settings - Version Control - Git在Path to Git executable里确认 Git 安装路径是否正确。Windows 下通常会在C:\Program Files\Git\bin\git.exe。如果这里显示红色报警说明 IDEA 没找到 Git你需要手动指定路径。拉取成功后代码会自动下载到本地并打开项目。之后在 IDEA 右下角可以看到当前分支信息直接在这里切换分支、同步代码、提交推送都很直观。IDEA 里的分支操作本质上调用的还是 Git 命令你在 IDEA 里右键项目选择Git - Repository - Branches就能看到所有远程和本地分支。4.4 分支合并最常用也最该谨慎的操作分支是 Git 最强大的特性之一。你可以开一个分支修 bug不影响主分支上的正常工作改完再合并回去。基本命令git branch dev # 创建 dev 分支 git checkout dev # 切换到 dev 分支 git add . git commit -m 开发中的修改 git checkout main # 切回主分支 git merge dev # 把 dev 合并进 main分支合并时最让人紧张的是冲突。当两个分支修改了同一个文件的同一行代码时Git 不知道应该保留哪个版本就会停下来让你手动解决。冲突文件里会出现类似这样的标记 HEAD 当前分支的内容 被合并分支的内容 dev你需要手动把这几个标记清理掉保留真正需要的内容然后重新git add和git commit。解决冲突不是技术难事难的是判断哪个版本更合理——这需要对业务改动足够了解。我的经验是合并前先看一眼两个分支各自改了哪些文件用git log --oneline --graph梳理分支走向能提前预判可能的冲突点真冲突了也能更快定位。5. 常见问题排查实录下载、安装、配置的坑我都踩过5.1 安装包下载慢或卡住怎么办Windows 下最常遇到的就是官网下载安装包速度慢或是下到一半中断。这种情况我建议你换两样东西一是换下载源国内高校镜像站同步了 Git for Windows 的安装包下载速度通常很可观二是换浏览器或下工具有些浏览器的下载管理容易在大文件中断线换个下载工具或者直接用系统自带下载都能绕开。但有一种情况需要注意如果下载页面能打开下载进度却始终为零多半是网络链路的问题这时候请勿尝试任何非官方手段直接用国内镜像站就好操作路径和官方下载没区别。装完之后如果git clone访问远程仓库时卡住、报超时排查思路也一样先确认网络能连通目标平台再考虑是不是地址写错了。5.2 git 不是内部或外部命令的排查思路Windows 用户在 CMD 或 PowerShell 里执行git时报不是内部或外部命令几乎都是 PATH 环境变量没配好。检查路径打开系统属性 - 环境变量 - Path确认有没有下面这几项C:\Program Files\Git\cmd C:\Program Files\Git\bin如果安装时选了Use Git from Git Bash onlyGit 就不会加入系统 PATH就会出现这个现象。两种解决办法一是改环境变量把以上路径加进去需要重启终端才能生效二是在 Git Bash 里执行 git 命令绕过系统终端。还有一种容易被忽略的情况你明明装了 Git但在某个终端里执行却报命令不存在。这通常是终端会话的环境变量没有刷新重启终端或者新开一个窗口再试。5.3 中文乱码问题两处配置解决中文乱码分两种。一种是在 Git Bash 里git status看到中文文件名显示成类似\346\265\213\350\257\225的转义字符这不是 Git 把文件搞坏了只是默认把非 ASCII 字符转义了。执行git config --global core.quotepath false就能让中文文件名正常显示。另一种是终端里输出的中文变成菱形问号这通常是终端编码和 Git 不一致造成的。Git Bash 窗口标题栏右键打开Options - Text把字符集设为 UTF-8基本就能解决。如果提交信息里的中文在git log里乱码检查一下提交时终端是否用的是 UTF-8 编码Windows 默认的 GBK 编码会导致提交到仓库里的中文本身就错乱。5.4 换行符差异导致的假冲突这是跨平台开发必踩的坑。两个同事一个用 Windows一个用 macOS没有统一换行符策略合代码时就会出现我什么都没改但整个文件都是冲突的诡异现象。同一份文件的每一行在 Windows 下是 CRLF在 Unix 下是 LFGit 对每一行都做对比自然判定每一行都变了。避免这种假冲突从源头就要统一换行符策略。Windows 安装器里的行结束符选项保持默认checkout CRLF、commit LF是一个方案也可以让团队里在项目根目录加一个.gitattributes文件直接声明所有文本文件的换行符规则* textauto *.sh text eollf如果你的某个旧项目已经因为换行符差异产生了大量假冲突可以通过以下命令批量规范化一遍注意这会改写文件执行前先提交所有改动git add --renormalize .5.5 IDEA 中拉取 Git 报错的三个高频原因IDEA 里拉取项目失败报错各有不同但最常见的就三类。第一Cannot run program git或Could not find Git executable。这是 IDEA 没找到 Git 路径按前面说的去Settings - Version Control - Git里手动指定。第二SSH 方式拉取时提示Permission denied (publickey)。这是公钥没配对好检查一下密钥是否已经添加到远程平台以及是否用的是正确密钥。可以通过ssh -T gitgithub.com测试也可以确认一下~/.ssh下的私钥文件名是否符合默认规则id_ed25519或id_rsa。第三HTTPS 方式拉取私有仓库时反复弹登录框。IDEA 内置的凭据管理有时会冲突可以把系统凭据管理器里对应的旧凭据清掉Windows 在控制面板 - 凭据管理器 - Windows 凭据重新登录一次就好。写在最后的经验安装 Git 这件事表面看是下载一个软件实际上一整套环境建设。我的个人经验是安装时花五分钟认真看每个选项比事后踩坑再排查要划算得多装完之后顺手把user.name、user.email、core.quotepath、init.defaultBranch全部配置好后面省下的是数不清的零碎麻烦。还有一个小建议新装好的 Git 请先建一个测试仓库把初始化、提交、分支创建、合并、冲突解决的流程完整跑一遍再带着这套手感去操作真实项目。不用怕搞坏测试仓库随便折腾反正版本管理工具最不怕的就是折腾——这也正是我们用它来管理代码的初衷。
返回列表