为什么需要 Git
想象你在写一篇重要的文章,每改一个版本都另存为一个新文件:文章_v1.docx、文章_v2_最终.docx、文章_v3_真的最终.docx……这种方式乱且低效。
Git 解决的就是这个问题,但针对的是代码。它让你可以:
- 记录每一次改动——什么时间、改了什么、为什么改,全部有记录
- 随时回退——写坏了?一条命令回到任意历史版本
- 并行开发——用分支同时尝试多个想法,互不干扰
- 多人协作——多个人修改同一份代码,自动合并,冲突时提示
在 AI Coding 时代,Git 更重要了,不是更不重要了。 Claude Code 会快速生成大量代码,你需要 Git 来追踪它做了什么、在出问题时回退,以及把工作成果安全备份到 GitHub。
核心概念(先读懂这几个词)
Repository(仓库)
一个 Git 管理的项目目录,包含全部历史记录。简称 repo。
Commit(提交)
一次快照,记录「这个时刻代码是什么状态」。每次提交都有唯一 ID 和说明信息。
Branch(分支)
从主线分出去的独立开发线。默认分支叫 main(旧项目叫 master)。
Merge(合并)
把一个分支的改动合并回另一个分支。
Remote(远端)
代码托管在 GitHub 上的版本。origin 是默认的远端名字。
Staging Area(暂存区)
提交前的「准备区」。你先把改动加入暂存区,再统一提交。
安装 Git
# Ubuntu/WSL 安装 Git
$ sudo apt install git
# 验证
$ git --version
git version 2.43.0
安装完 Git 后,推荐在 VS Code 里进行配置和日常操作,图形化界面更直观。命令行操作放在后面作为参考。
VS Code 中配置 Git(推荐新手)
VS Code 内置了强大的 Git 支持,大部分操作都可以通过图形界面完成,比命令行更直观。
设置用户信息
第一次使用 Git,需要告诉它你是谁(这会出现在每次提交的记录里):
打开 VS Code 设置
按 Ctrl+,(Windows/Linux)或 Cmd+,(Mac)打开设置
搜索 Git 配置
在搜索框输入 git.user,会看到两个选项:
- Git: User Name - 填入你的名字(如
Transcendence) - Git: User Email - 填入你的邮箱(必须和 GitHub 账号邮箱一致)
验证配置
打开终端(Ctrl+`),运行:
$ git config --list | grep user
user.name=Transcendence
user.email=you@example.com
也可以用命令行配置:
$ git config --global user.name "Transcendence"
$ git config --global user.email "you@example.com"
$ git config --global init.defaultBranch main
VS Code 中的基本 Git 操作
VS Code 左侧有一个源代码管理图标(分支形状),点击后可以看到所有 Git 操作。
1. 初始化仓库
打开你的项目文件夹(File → Open Folder)
点击左侧源代码管理图标,点击 Initialize Repository
项目现在已经是一个 Git 仓库了
2. 暂存与提交(最常用)
这是你每天都会用到的操作:
查看改动
修改文件后,源代码管理面板会显示所有改动的文件
点击文件名可以看到具体改了什么(左边是旧版本,右边是新版本)
暂存文件
鼠标悬停在文件名上,点击 + 号(暂存单个文件)
或点击 Changes 旁边的 + 号(暂存所有文件)
提交
在顶部的消息框输入提交说明(如 feat: 添加用户登录功能)
点击 ✓ Commit 按钮
快捷键:
Ctrl+Shift+G- 打开源代码管理面板Ctrl+Enter- 提交(在消息框输入完后)
3. 查看历史
点击源代码管理面板右上角的 ···(更多操作)→ View History,可以看到所有提交记录。
或者安装 GitLens 插件(强烈推荐),功能更强大:
- 每行代码旁边显示最后修改者和时间
- 可视化的分支图
- 更详细的历史记录
4. 撤销操作
- 撤销未暂存的改动:右键文件 → Discard Changes
- 取消暂存:点击已暂存文件旁的 − 号
- 修改上次提交:更多操作 → Commit → Amend
5. 分支操作
点击左下角的分支名(如 main)
选择 Create new branch,输入分支名(如 feature/login)
在新分支上工作,完成后切换回 main
更多操作 → Branch → Merge Branch,选择要合并的分支
在 VS Code 中连接 GitHub
VS Code 可以直接登录 GitHub,推送和拉取代码都很方便。
登录 GitHub
点击左下角的账户图标 → Sign in to Sync Settings → 选择 GitHub
在浏览器中授权 VS Code 访问你的 GitHub 账号
发布到 GitHub
源代码管理面板 → Publish to GitHub
选择仓库名、公开/私有,VS Code 会自动创建仓库并推送代码
推送和拉取
提交后,点击 Sync Changes 按钮(或更多操作 → Push)
拉取远端代码:更多操作 → Pull
VS Code 的优势:所有操作都是可视化的,不用记命令,出错时也有清晰的提示。对新手非常友好。
好的 commit message 很重要。 写「修复了一些 bug」没有价值;写「fix: 修复登录时 token 过期未刷新的问题」才有意义。推荐格式:type: 简短描述,type 可以是 feat(新功能)、fix(修复)、docs(文档)、refactor(重构)等。
GitHub 使用
Git 是版本控制工具(本地),GitHub 是代码托管平台(云端)。两者结合,你的代码就有了云备份,也能和别人协作。
如果你已经在 VS Code 中登录了 GitHub(前面步骤),可以直接使用 HTTPS 方式推送拉取,无需配置 SSH。但配置 SSH 密钥更安全,推荐长期使用。
配置 SSH 密钥(推荐)
SSH 密钥让你不用每次 push/pull 都输密码:
生成 SSH 密钥:
$ ssh-keygen -t ed25519 -C "you@example.com"
# 一路回车使用默认设置
复制公钥内容:
$ cat ~/.ssh/id_ed25519.pub
# 复制输出的那一行文字(以 ssh-ed25519 开头)
在 GitHub 添加公钥:Settings → SSH and GPG keys → New SSH key,粘贴进去保存。
验证连接:
$ ssh -T git@github.com
Hi Transcendence! You've successfully authenticated...
推送与拉取
在 VS Code 中:
- 推送:提交后点击 Sync Changes 或 更多操作 → Push
- 拉取:更多操作 → Pull
- 同步:Sync Changes 会先拉取再推送,保持同步
命令行方式:
# 在 GitHub 上先创建一个新仓库(空仓库),然后:
# 关联本地仓库与远端(SSH 格式)
$ git remote add origin git@github.com:username/repo.git
# 第一次推送
$ git push -u origin main
# 之后每次推送
$ git push
# 拉取远端最新代码
$ git pull
克隆项目
在 VS Code 中:
- 按
Ctrl+Shift+P打开命令面板 - 输入
Git: Clone - 粘贴 GitHub 仓库地址
- 选择保存位置
命令行方式:
# 克隆别人的项目到本地
$ git clone git@github.com:username/repo.git
# 克隆到指定目录名
$ git clone git@github.com:username/repo.git my-folder
.gitignore — 告诉 Git 什么不要追踪
在 VS Code 中,右键项目根目录 → New File → 输入 .gitignore,然后填入以下内容:
有些文件不应该上传到 Git:密钥、虚拟环境、node_modules、编译产物……在项目根目录创建 .gitignore 文件来排除它们:
# .gitignore 示例
# Python 虚拟环境
.venv/
venv/
__pycache__/
*.pyc
# Node.js
node_modules/
dist/
.next/
# 环境变量文件(包含密钥!绝对不能上传)
.env
.env.local
# 编辑器生成的文件
.DS_Store
.vscode/settings.json
永远不要把 API Key 上传到 GitHub,哪怕是私有仓库。一旦上传,即使之后删掉,Git 历史里还是有记录。密钥统一放在 .env 文件,然后把 .env 加进 .gitignore。
命令行操作参考
虽然 VS Code 已经能完成大部分操作,但了解命令行也很有用。以下是常用命令速查:
初始化与配置
# 初始化仓库
$ git init
# 配置用户信息
$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"
$ git config --global init.defaultBranch main
基本操作
# 查看状态
$ git status
# 暂存文件
$ git add filename.py
$ git add . # 暂存所有
# 提交
$ git commit -m "feat: 添加新功能"
$ git commit -am "fix: 修复问题" # 暂存并提交已追踪文件
# 查看历史
$ git log --oneline
撤销操作
# 撤销工作区改动
$ git restore filename.py
# 取消暂存
$ git restore --staged filename.py
# 修改上次提交
$ git commit --amend -m "新的提交信息"
# 回退到上个版本
$ git reset --soft HEAD~1 # 保留改动
$ git reset --hard HEAD~1 # 丢弃改动(危险!)
# 临时存档
$ git stash
$ git stash pop
分支操作
# 查看分支
$ git branch
# 创建并切换分支
$ git switch -c feature/new-feature
# 切换分支
$ git switch main
# 合并分支
$ git merge feature/new-feature
# 删除分支
$ git branch -d feature/new-feature
远程操作
# 关联远程仓库
$ git remote add origin git@github.com:username/repo.git
# 推送
$ git push -u origin main # 第一次
$ git push # 之后
# 拉取
$ git pull
# 克隆
$ git clone git@github.com:username/repo.git
配合 Claude Code 用 Git
当你用 Claude Code 开发时,Git 的重要性倍增。推荐的工作模式:
- 开始前 commit 一次:让 Claude 做改动之前,先提交当前状态。这样出问题可以干净地回退。
- 用分支做实验:
git switch -c claude/feature-xxx,让 Claude 在这个分支里工作,满意了再合并进 main。 - 小步 commit:每完成一个功能点就提交一次,不要积累太多改动再提交。
- 查看 diff:用
git diff看 Claude 做了哪些改动,确认没问题再提交。
# 让 Claude 开始工作前,保存当前状态
$ git add . && git commit -m "checkpoint: 开始添加新功能前的存档"
# 查看 Claude 做了哪些改动
$ git diff
# 如果不满意,一键回退
$ git reset --hard HEAD
一个实用技巧: Claude Code 内置了对 Git 的感知,它知道你当前项目的 Git 历史。你可以直接告诉它「回退到上一个 commit」「基于当前的改动写一条 commit message」,它都能理解并执行。
下一步
基础工具链全部就位了:有了 Linux 终端、Python、Node.js 和 Git,现在可以安装和使用 Claude Code 了。下一篇是这个系列的重点。