1. 为什么前端和运维都得补上 Git 这一课
先说说我自己的经历。早年带新人的时候,最怕碰上两种同事:一种是后端老手但从来只用 GUI 工具,遇到代码冲突直接整个人懵掉;另一种是实习生刚装了 Git 就急着 push,结果把本地 config 文件里的账号密码一股脑推到公开仓库,第二天上班发现自己的凭据挂满了整个互联网。这两类情况说白了都是一个根源——对 Git 的核心机制没建立起正确的心理模型。
很多人觉得 Git 难,是因为把 Git 当成 Dropbox 用:以为 commit 就是"保存一下",以为 push 就是"文件同步过去了"。实际上 Git 是一个基于快照的内容寻址系统,它不追踪"差异",而是记录每次提交后整个项目树的状态。理解这一点,后面所有命令行为都能解释得通。
这篇内容适合谁?不只是程序员。做前端、做运维、做数据分析、甚至写文档的人,只要你的工作里存在"版本""多人协作""需要回溯"这几个关键词,Git 就是绕不开的基础设施。下面我不按官方文档的顺序讲,而是按一个新人从安装到真正能独立干活会遇到的问题链路逐步拆开,把那些网上教程通常不会细讲的"为什么"一并说清楚。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备:从安装到终端跑通,这中间藏着哪些坑
2.1 不同系统的安装方式与验证方法
Git 的安装本身不难,但"安装完发现终端不认"这事我见过太多次。先把三种主流系统的安装路径说清楚:
- Windows:直接去 Git 官网下载安装包,版本号认准 2.4x 以上即可。安装过程中的关键选项是"调整 PATH 环境变量",一定要选 Git from the command line and also from 3rd-party software,如果选了中间那个"只在 Git Bash 里可用",你在 PowerShell 或 CMD 里敲
git就会看到那串经典的报错:git : 无法将“git”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 - macOS:优先建议用 Homebrew 安装,
brew install git一条命令解决。不要碰系统自带的那个老版本 Git,Apple 停止维护后它已经很久不更新了。如果之前装过 Xcode Command Line Tools,可能已经带了一个 Git,用git --version先看看版本,太旧就覆盖装。 - Linux:Ubuntu/Debian 系用
sudo apt install git,CentOS/RHEL 系用sudo yum install git。这里有个大家常常忽略的点:在某些最小化安装的服务器镜像上,连curl和wget都没有,装 Git 之前你可能还要先装依赖。所以生产机器上装 Git,最好一次性把curl wget vim ca-certificates这些基础工具包都带上。
装完别急着走,先用 git --version 验证。如果输出类似 git version 2.43.0 就是正常的。Windows 用户如果在 PowerShell 里验证失败,但 Git Bash 里能用,多半是 PATH 问题,关掉终端重开一次还不行就去系统环境变量里手动检查路径。
提示:Windows 安装器最后一步会让你选"默认编辑器"和"初始化分支名"。编辑器随便,但分支名建议选 main 而不是 master,一是 GitHub 新仓库默认 main,二是在国内网络环境下 master 这个词本身没有特殊意义,纯粹是习惯统一的问题。
2.2 三件套配置:user.name、user.email 和换行符
安装完 Git 之后第一件事不是建仓库,而是设置身份信息。这一步漏掉的话,你 commit 时会得到一长串提示让你先配置,新人经常卡在那里一头雾水。执行命令如下:
bash复制git config --global user.name "your_name"
git config --global user.email "your_email@example.com"
这里有两个实操细节值得展开说。
第一个是 --global 和仓库级配置的优先级问题。--global 写的是当前操作系统用户的全局配置,存在 ~/.gitconfig 里。但当你参与某个具体项目时,这个项目的 .git/config 里也可以有自己的 user.name。Git 的配置读取优先级是:仓库级 > 全局级 > 系统级。所以如果你同时给公司和个人项目打工,可以在公司的仓库目录里单独设一个公司邮箱,避免提交记录里混入私人邮箱。
第二个是 core.autocrlf 和换行符的问题。Windows 换行符是 CRLF(回车+换行),Linux/macOS 是 LF。如果团队里混着 Windows 和 macOS 的人,不处理换行符差异,每次切换分支都会看到一堆"整个文件都被修改了"的假 diff——实际只是换行符变了。推荐的统一做法是:
bash复制# Windows 用户
git config --global core.autocrlf true
# macOS/Linux 用户
git config --global core.autocrlf input
原理一句话:true 会在检出代码时把 LF 转成 CRLF,提交时再转回 LF;input 则只在提交时把 CRLF 转成 LF。这样仓库里永远存的是 LF,大家的 diff 干净很多。团队里如果已经有历史包袱,改完配置后可能需要重刷一遍工作区,这个后面会单独讲。
2.3 第一次 clone 与 https 传输的登录问题
环境配置完成后,大多数人会从远程仓库 clone 一个项目下来。git clone https://github.com/xxx/xxx.git 这条命令看似简单,但背后涉及 HTTPS 与 SSH 两种远程连接方式。
- HTTPS 方式:每次 push 都要输入用户名和密码(或 token)。新一点的 Git 版本会缓存凭据,Windows 上默认用 Windows 凭据管理器,macOS 上默认用钥匙串。如果 clone 的是 GitLab 私有仓库,且开启了二次验证,密码框里填的不是登录密码,而是个人访问令牌(Personal Access Token)。这对应热搜词里那句
login failed. check api token or gitlab version. log in via git if the versi...的场景,后面会专门讲。 - SSH 方式:需要先本地生成密钥对,公钥放到平台后台。好处是免密,坏处是首次配置要稍微多花两分钟。
对新人的建议是:本地开发机用 SSH,一次性配置长期省事;服务器上做自动化部署用 SSH 加 deploy key;如果你只是临时拉一个公开项目看
