
Git 这玩意儿只要你碰代码早晚绕不开它。我当年第一次装 Git 的时候光在官网找下载按钮就懵了半天装上之后打开 Git Bash 面对一堆英文命令更是一脸茫然那个状态我现在记忆犹新。所以这次干脆把整套流程从头到尾捋一遍从下载安装、初始化配置、最常用命令到新手必踩的坑全部用大白话讲清楚保证你看完能自己从零装好并且用起来。这篇保姆教程适合完全没有接触过 Git 的纯新手也适合装过但没配置明白、想系统理一遍的朋友。整篇文章我会以 Windows 为主来讲解macOS 和 Linux 的关键步骤也会提到。学完之后你不仅能独立完成 GitHub、Gitee 等代码托管平台上的仓库克隆和推送还能看懂团队协作时那几条高频 Git 命令到底在干什么。1. 先搞清楚 Git 是什么为什么人人都说要学它说实话我在还没用 Git 之前一直以为它和 GitHub 是一回事。这是新手最常见的误区先把这个概念掰开揉碎了后面你才不会越学越乱。1.1 Git 和 GitHub/Gitee 压根不是一回事Git 是一个版本控制工具它装在你自己的电脑上用来记录你项目文件的每一次改动。你可以随时随地回到之前的某一个版本也可以开一个不影响主线的分支去尝试新功能做砸了直接扔掉完全不影响主代码。它是免费的、开源的由 Linux 之父 Linus 开发一开始是为了管理 Linux 内核代码写的后被全世界广泛使用。而 GitHub、Gitee 这些则是在线代码托管平台你可以把本地 Git 仓库里的代码推送到这些平台上实现备份、分享和多人协作。它们就像是基于 Git 的“云盘”但功能比云盘强得多比如代码审查、Issue 管理、自动化流水线。Git 是汽车引擎平台是跑在引擎上的车身缺一不可。1.2 Git 到底解决了什么问题举个特别生活的例子。你写毕业论文的时候是不是会保存“论文_初稿.doc”“论文_修改1.doc”“论文_最终版.doc”“论文_最终版2.doc”如果你用 Git每次修改后只需要提交一次记录提交信息里写明“第三章补充了数据分析”然后永远只有一个文件。想找回三天前的版本一条命令就搞定再也不用文件名后面加各种后缀了。团队协作就更离不开它。几个同事同时改同一个项目文件Git 会自动合并各自改动的部分如果两个人改了同一处地方它也能明确提示冲突位置让你人工决定保留谁的代码。远的说这是业界标准技能近的说几乎所有公司入职后都要用 Git 拉代码、提代码不会它寸步难行。1.3 这篇保姆教程适合谁学完你能获得什么如果你是那种从没接触过命令行的纯小白完全不用怕。我会把每一步操作都写清楚包括鼠标点哪里、命令敲什么、看到什么输出算成功。如果你之前装过 Git 但中途配置失败了也可以跟着文章从头捋一遍重点看第 4 节的 SSH 配置和第 6 节的坑位排查。学完整篇下面这些事你都能独立完成在你自己的电脑上安装 Git并且正确配置用户信息生成 SSH 密钥实现本地与代码托管平台之间的免密推送用 Git Bash 完成克隆、提交、推送、拉取、分支、合并等高频操作看懂常见报错信息知道怎么查、怎么修。2. 下载 Git官网、镜像、版本三件事一次说清下载看似简单但里面有几个细节没处理好后面能给你整出不少幺蛾子。我先说渠道再说版本选择。2.1 从哪儿下载最靠谱最正规的地方是 Git 官网下载页面网址是 git-scm.com/downloads页面会自动识别你当前的操作系统。如果你用的是 Windows点击页面上的 Windows 字样就会开始下载 64 位安装包文件名一般长这样Git-2.xx.x-64-bit.exe。这个体积在 50MB 到 60MB 左右如果下载速度飞快到几十 MB/s注意核对下文件大小对不对。如果你身在网络环境不太稳定的地方或者官网下载特别慢还有一个非常推荐的选择国内镜像站。用国内镜像下载 Git 安装包速度通常比官网快很多而且版本更新也及时。我个人的习惯是优先从这类镜像站下载几秒钟就能拿下来省时省心。2.2 32位和64位、安装版和绿色版怎么选现在绝大多数电脑都是 64 位系统所以直接下载 64 位安装包x64即可。只有很老很老的机器才需要考虑 32 位版本x86。右键点击“此电脑”选择“属性”在“系统类型”里可以看到你的系统位数这是最稳妥的判断方式。再说安装版和绿色版。官网下载页还提供一种Portable版本它是绿色免安装的解压就能用。但我不推荐新手用它原因是便携版不写系统环境变量不在右键菜单里注册 Git Bash 和 Git GUI 的入口你用起来会非常不便。老老实实装安装版这些它都自动帮你处理好一步到位。2.3 下载前检查一下你的系统信息在开始下载之前花 10 秒钟确认两件事系统类型是 64 位还是 32 位决定下载哪个包电脑上是否已经装过 Git。有些软件会自带 Git 环境比如部分编辑器。可以先按下Win R输入cmd打开命令行然后输入git --version看看有没有版本号返回。如果提示“不是内部或外部命令”说明系统还没装可以放心安装。3. Windows 安装 Git 全程图解每个选项都给你翻译成人话这一步是很多人都没耐心的部分。安装包一路点“Next”确实能装完但如果你不了解那几个关键选项的含义后面要么代码乱码要么命令提示符里调不了 Git非常郁闷。我带你一步步走一遍。3.1 双击安装包开始前几个界面就这么点打开下载好的 exe 文件如果弹出用户账户控制窗口点“是”就行。第一个界面是 Git 的许可证说明直接点Next。接下来是安装路径默认在C:\Program Files\Git建议保持默认省得后面环境变量出问题。然后是选择组件Select Components。这里有几个勾选项Additional icons / On the Desktop是否在桌面创建图标喜欢干净的可以不勾Windows Explorer integration / Git Bash Here右键菜单里多出一个“Git Bash Here”选项这个强烈建议勾选后面你打开 Git 终端基本都靠它Windows Explorer integration / Git GUI Here右键菜单增加图形界面的 Git GUI看习惯可勾可不勾Associate .git configuration files with the default editor是否把 Git 配置文件关联到文本编辑器建议勾选。接着会让你选择“默认编辑器”。默认是 Vim对新手极度不友好进去不知道怎么输入内容、不知道怎么退出。强烈建议你选别的选项比如选 Notepad、Visual Studio Code 等。3.2 几个关键配置项每一个都别乱选接下来是安装过程里最核心的几个配置很多人就是在这里随便点了后面各种问题。第一项是Adjusting your PATH environment调整 PATH 环境变量。这里选第二项Git from the command line and also from 3rd-party software推荐意思是 Git 不仅能在自带的 Git Bash 里用还能在 Windows 自带的 CMD、PowerShell 里直接用git命令对日常使用是最方便的。第二项是Choosing the SSH executable默认选Use bundled OpenSSH即可自带的 SSH 客户端足够用不用额外装 OpenSSH。第三项是Choosing HTTPS transport backend默认选Use the OpenSSL library。这个决定 Git 通过 HTTPS 连接远程仓库时使用哪种证书验证方式保持默认即可。第四项是Line ending conversions换行符转换这是新手最容易忽视、也最容易遇到警告的地方。默认选项Checkout Windows-style, commit Unix-style line endings意思是文件从仓库检出到本地时自动转换成 Windows 换行符CRLF提交时再转换成 Unix 换行符LF。这个默认选项对 Windows 用户就是最省心的你不用动它。如果你和团队里其他同事混用不同系统这个配置能自动帮你规避大量换行符引发的代码比对差异。第五项是Configuring the terminal emulator默认选Use MinTTY这是一个更好用的命令行模拟器支持颜色和快捷键比老的 Windows 控制台体验好。保持默认。第六项是Configuring extra options勾选Enable file system caching提升性能Enable Git Credential Manager用来帮你记住 HTTPS 方式的账号密码。都勾上。最后那个实验性选项Enable experimental support for pseudo consoles不建议勾选它还不稳定。点击Install开始安装整个过程大概一到两分钟。3.3 安装完怎么确认成功安装完成后桌面上如果没有快捷方式可以在任意目录下右键看到菜单里有Git Bash Here就说明安装成功了。点击打开输入git --version如果返回类似git version 2.45.1.windows.1的信息说明一切正常。再输入git config --list能列出配置文件就说明 Git 已经完全可用了。3.4 macOS 和 Linux 的安装方式一句话带过如果你用的是 macOS最推荐的方式是安装 Homebrew 后在终端执行brew install git一条命令装好也可以去官方下载页面下载 dmg 安装包双击安装或者直接装 Xcode Command Line Tools。Linux 更是简单# Debian / Ubuntu 系 sudo apt install git # CentOS / RHEL 系 sudo yum install git # Fedora 系 sudo dnf install git装完同样可以用git --version验证。4. 装完别急着用先做这 4 步初始化配置安装好 Git 后立刻上手敲git clone反而容易碰壁因为你的 Git 还没有“身份”。Git 每次提交代码都需要记录“谁在什么时间改了什么”如果你没配置身份提交会被拒绝。这一步配置非常关键却常被新手忽略。4.1 设置用户名和邮箱这个不写 commit 直接失败打开 Git Bash输入下面两条命令注意把引号里的内容换成你自己的名字和常用邮箱git config --global user.name 你的名字 git config --global user.email 你的邮箱什么邮箱都行但建议你用注册代码托管平台比如 Gitee 或 GitHub的那个邮箱这样你提交记录的头像能正确关联到你的账号。这段配置全局生效也就是说这台电脑上所有 Git 仓库都默认用这个身份。设置完成后再执行git config --list能看到类似这样的内容就对了user.name你的名字 user.email你的邮箱4.2 编辑器和换行符的细节调整如果你在安装时不小心保留了默认的 Vim也可以在命令行里重新设置git config --global core.editor code --wait上面这条命令会把 Git 默认编辑器设置成 VS Code。如果你用的是其他编辑器按实际情况替换即可。换行符的配置也可以随时查看和修改git config --global core.autocrlf true同样的功能在安装界面只是勾选项在命令行里就是这条参数。两者效果一样二选一即可。4.3 生成 SSH 密钥和 Gitee/GitHub 建立“免密通道”配置好身份之后下一步是让 Git 和远程代码托管平台建立信任关系。推荐的方式是 SSH 密钥配置好之后以后 push、pull 都不用反复输密码。先在 Git Bash 里执行ssh-keygen -t ed25519 -C 你的邮箱接下来会提示你选择保存路径直接回车用默认路径~/.ssh/id_ed25519就行。然后提示设置密码短语passphrase这个可以直接留空直接回车。如果设置了密码短语每次使用密钥时都要输一次对新手来说体验反而不好。生成成功后会看到一串类似“Your identification has been saved”的文字还有一幅随机艺术图。此时在你的用户目录下比如C:\Users\你的用户名\.ssh能看到两个文件id_ed25519私钥相当于你的“钥匙”绝不能外泄不能发给任何人id_ed25519.pub公钥相当于“锁的图样”可以公开就是要把这个内容填到代码托管平台。查看公钥的完整内容用这条命令cat ~/.ssh/id_ed25519.pub选中输出的一长串内容复制。然后登录你的代码托管平台账号以 Gitee 为例进入设置 - SSH 公钥把复制的内容粘贴到公钥输入框标题随便填保存即可。GitHub 的操作路径是Settings - SSH and GPG keys - New SSH key。4.4 测试连接并克隆第一个仓库配置完公钥之后回到 Git Bash执行ssh -T gitgitee.com注意如果到时候提示确认连接Are you sure you want to continue connecting输入yes回车。如果看到“Hi 用户名! Youve successfully authenticated”之类的成功提示恭喜你密钥配置生效了。现在随便找一个你想存放代码的目录比如D:\Code在这个目录下右键打开 Git Bash然后复制你在平台创建好的仓库地址执行git clone gitgitee.com:你的用户名/仓库名.git执行完本地就会出现一个和远程仓库同名的文件夹说明整个下载、安装、配置的流程已经全部走通了。5. Git Bash 里最常用的 12 条命令照着敲就行配置全部完成后就可以正式上手体验 Git 的日常操作了。很多人一打开 Git Bash 就发怵其实无关的命令我们根本不碰日常高频使用的就那十几条。我把它们串成一个完整场景来讲。5.1 第一次完整提交add、commit、push 三步走假设你已经进入项目目录这个目录必须已经是一个 Git 仓库克隆下来的目录都是。看当前状态git statusGit 会告诉你哪些文件有改动、哪些文件还没被跟踪。接下来第一步把改动添加到暂存区git add .这里的.表示添加当前目录下所有改动文件。如果你只想添加某个文件把.换成文件名即可比如git add index.html。然后提交到本地仓库git commit -m 这次改了什么用一句话说明白-m后面是本次提交说明团队协作时写清楚改动内容很重要。最后推送到远程git push第一次推送时如果你用的是 HTTPS 地址可能会弹出登录窗口Git Credential Manager 会帮你保存凭据之后就不需要重复登录了如果你用的是 SSH 地址配置好密钥后直接就推上去了。上面三条命令就是 Git 日常使用频率最高的组合我也叫它“提交三步走”。虽然 IDE 里也能一键完成但命令行理解了这个过程后你就能清楚知道每一步发生了什么。5.2 拉取更新、查看历史、撤销修改在团队协作中别人可能在你之前推送了代码所以每次开始工作前拉取最新代码是好习惯git pull这条命令会把远程最新改动合并到你当前分支。如果你本地也有未提交的修改Git 可能会提示冲突或要求你先提交这属于正常运行。想看看提交历史用git log --oneline --graph--oneline让每条提交只显示一行摘要--graph用图形展示分支脉络。如果发现刚才提交写错了说明想修改最近一次提交信息git commit --amend -m 修改后的提交说明这个命令是热搜里经常出现的它能把上一次提交信息改掉同时把暂存区里还没提交的改动一起合并进去。不过要注意这条命令只适合修改还没有推送到远程的提交如果已经git push过了再 amend 会跟远程历史不一致处理起来比较麻烦。撤销还没有提交的更改分两种情况。如果只是想丢弃工作区里所有未提交的修改git checkout -- .或者用新版命令git restore .。如果想撤销已经 add 到暂存区的文件git reset HEAD .这几个撤销命令建议先在小仓库里试一遍体会一下区别别直接在重要项目上操作。5.3 分支操作创建、切换、合并分支是 Git 最强的功能之一也是新手最容易绕晕的部分。简单理解分支就是代码仓库里的平行时空。你在主分支上开发功能其他人也在上面提交代码互相干扰就可能打到头。更好的做法是开一个分支自己写完了再合并回去。查看当前分支git branch创建新分支git branch 分支名切换到该分支git checkout 分支名新版 Git 更推荐用git switch 分支名来切换分支语义更清楚。创建并同时切换可以合并成一条git switch -c 分支名分支里的工作完成后切回主分支然后合并git switch main git merge 分支名如果两个分支改动了同一个文件的同一段代码Git 就会提示合并冲突。这时候 Git 会在冲突文件里用、、标记出两边的内容你需要手动选择保留哪份删除冲突标记再重新 add、commit。5.4 那些热搜词里的“怪命令”到底在干嘛热搜里有一条git -c diff.mnemonicprefixfalse -c core.quotepathfalse --no-optional-locks看起来很长很奇怪其实这是某些 GUI 工具比如 SourceTree、VS Code在后台调用 Git 时自动加上的参数。它把一些默认行为关掉了比如禁用文件名的 Unicode 转义避免中文文件名显示成八进制编码。正常使用命令行时不需要手动敲看到不代表有问题。还有就是git worktree这是 Git 2.15 之后引入的功能允许你在同一个仓库上同时检出多个分支到不同目录。比如你正在一个分支开发到一半突然需要切换到另一个分支修个紧急 bug又不想提交现在半成品代码就可以用git worktree add开一个新目录去处理它两边互不干扰。新手阶段可以暂时不深入知道有这个功能即可。5.5 给不喜欢命令行的你小乌龟和 IDEA 图形化方案如果你实在不喜欢敲命令Windows 上可以配合 TortoiseGit俗称“小乌龟”使用。它是一个图形化 Git 客户端安装后会在文件夹右键菜单里显示图标提交、推送、拉取都靠图形界面完成。小乌龟的绿勾图标表示文件未改动红色感叹号表示有修改非常直观。如果你日常用 IntelliJ IDEA 写代码那更简单IDEA 内置了完整的 Git 集成。项目打开后选择VCS - Enable Version Control Integration以后修改代码文件会变成蓝色右键选择Commit提交再选择Push推送即可。底层执行的还是 Git 命令但你不需要自己敲了。6. 新手最容易踩的 7 个坑看到了能少走很多弯路我见过太多人倒在 Git 的报错面前其实绝大部分报错都是几个固定原因。这里把出现频率最高的几个坑汇总一下你对照着排查往往几分钟就能解决。6.1 fatal: not a git repository (or any of the parent directories): .git这个报错的意思是“当前目录不是 Git 仓库”。原因一般有两个一是你还没进入项目目录在随便一个文件夹里就执行了 Git 命令二是这个项目根本没初始化过。解决办法是先确认位置执行pwd查看当前路径执行ls -a看有没有.git目录。如果确实没有说明该项目还没用 Git 管理进入项目目录后执行git init初始化即可。6.2 提交时提示 user.name 和 user.email 未配置当你执行git commit时如果弹出类似下面的提示Author identity unknown Please tell me who you are.说明你跳过了第 4 节的配置步骤。按提示里的命令设置一次即可git config --global user.name 你的名字 git config --global user.email 你的邮箱设置完重新提交问题就消失了。这个报错也和“没进入仓库目录”容易同时出现注意先确保你在正确的项目目录里。6.3 warning: LF will be replaced by CRLF 警告要不要管你在 Windows 上执行git add时可能会看到一大堆警告warning: LF will be replaced by CRLF in xxx.java这不是错误只是 Git 在告诉你文件在仓库里的换行符是 LF但会在你的工作目录中存成 CRLF。这是 Windows 和 Unix 两种系统换行符差异的正常处理。只要你在安装时选了默认的换行符转换选项就可以完全忽略这个警告不会影响代码内容。如果真的觉得烦可以在全局配置里把这个警告关掉但这不推荐因为它还是有一定提示价值的。6.4 推送时连接失败或超时怎么办执行git push或git clone时如果报网络错误、连接超时等先检查网络是否正常再确认你用的是 HTTPS 还是 SSH 地址。如果访问某些海外平台不稳定可以换用国内的代码托管平台比如 Gitee把仓库先导入过去再从 Gitee 拉取。还有一种思路是把远程地址换为镜像加速地址不过最稳的还是先用国内的平台个人项目和练习完全够用。检查当前远程地址用git remote -v如果远程地址不对可以修改git remote set-url origin 正确的地址6.5 IDEA 或 GitLab 客户端登录报 API token 错误如果你在用 GitLab登录时遇到Login failed. Check API token or GitLab version. Log in via Git if ...这类提示核心原因就两个一是 API Token 填错了或令牌已过期二是 GitLab 服务版本过旧或插件版本不兼容客户端版本。排查顺序建议是先去 GitLab 个人设置里重新生成一个 access token权限至少勾选read_api或api重新填入如果还不行检查 IDEA 里 GitLab 插件版本和 GitLab 服务器版本是否匹配必要时在插件市场升级 GitLab 集成插件。多数情况下换一个新 token 就能解决。6.6 .git 目录泄露这个安全大坑要知道这是安全领域一个非常经典的案例。如果你不小心把一个 Git 仓库里的.git目录误上传到了在线服务比如网盘或者部署到了公开网站那么别人就有可能通过特殊手段读取这个目录里的配置文件甚至把整个项目源码和历史版本全部拖下来因为.git目录里保存着仓库的完整历史。日常需要注意部署项目到生产环境时确保.git目录被排除用.gitignore明确列出不需要纳入版本控制的文件和目录不要轻易把整个项目文件夹打成压缩包发给别人。如果你不确定自己的项目有没有把.git目录暴露出去可以先在服务器或网站里尝试访问.git/config路径如果能直接打开看到文件说明已泄露第一时间断开公网访问权限。6.7 让 Git 命令更顺手的小技巧最后分享几个我用下来非常顺手的技巧。1. 给常用命令取别名。在全局配置里加几行可以大幅减少敲字量git config --global alias.st status git config --global alias.co checkout git config --global alias.br branch git config --global alias.cm commit以后敲git st就相当于git status快得多。2. 用git commit -am跳过 add。对于已经被跟踪过的文件git commit -am 修改说明这条命令会把所有已跟踪文件的改动直接提交省去先执行git add的一步。不过新增的未跟踪文件还是需要先git add。3. 用git pull --rebase保持历史整洁。团队协作时如果你每次拉取都用git pull --rebase提交历史就是一条直线没有多余的合并记录看起来特别清爽。刚上手时可以先了解等对分支和合并熟悉以后再经常使用。7. 写在最后一些掏心窝的建议根据我个人经验学 Git 最忌一上来就看一大堆概念正确姿势是先把安装和配置折腾好然后在一个练习仓库里反复试试到报错能自己解决为止你就真正入门了。我在实际使用中发现报了错不用慌先仔细读报错信息尤其是冒号后面的那句英文大部分时候它已经把答案告诉你了一半。还有一个小建议勤用git status和git log --oneline --graph这两个命令能让你随时清楚自己到底在哪个分支、改了什么、走了多远。很多人用 Git 出问题都是因为埋头操作从不看状态结果推错、合错、丢改动最后只能挠头。这篇文章从下载安装讲到了初始化配置、高频命令、常见报错排查覆盖了一条完整的入门路线。你先把它一步步走完后面要深入再学 rebase、cherry-pick、stash 这些进阶操作时会发现基础扎实了很多。加油。