Tech Learning · 04

Git & GitHub:
代码的时光机

为什么每个开发者都离不开 Git,怎么用它保存工作进度、回退错误,以及 GitHub 协作的核心流程。

约 15 分钟 基础入门 2026
如果这篇文章对你有帮助,点个赞让我知道吧 👋
感谢你的支持!🎉

为什么需要 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,需要告诉它你是谁(这会出现在每次提交的记录里):

1

打开 VS Code 设置

Ctrl+,(Windows/Linux)或 Cmd+,(Mac)打开设置

2

搜索 Git 配置

在搜索框输入 git.user,会看到两个选项:

  • Git: User Name - 填入你的名字(如 Transcendence
  • Git: User Email - 填入你的邮箱(必须和 GitHub 账号邮箱一致
3

验证配置

打开终端(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. 初始化仓库

1

打开你的项目文件夹(File → Open Folder

2

点击左侧源代码管理图标,点击 Initialize Repository

3

项目现在已经是一个 Git 仓库了

2. 暂存与提交(最常用)

这是你每天都会用到的操作:

1

查看改动

修改文件后,源代码管理面板会显示所有改动的文件

点击文件名可以看到具体改了什么(左边是旧版本,右边是新版本)

2

暂存文件

鼠标悬停在文件名上,点击 + 号(暂存单个文件)

或点击 Changes 旁边的 + 号(暂存所有文件)

3

提交

在顶部的消息框输入提交说明(如 feat: 添加用户登录功能

点击 ✓ Commit 按钮

💡

快捷键:

  • Ctrl+Shift+G - 打开源代码管理面板
  • Ctrl+Enter - 提交(在消息框输入完后)

3. 查看历史

点击源代码管理面板右上角的 ···(更多操作)→ View History,可以看到所有提交记录。

或者安装 GitLens 插件(强烈推荐),功能更强大:

4. 撤销操作

5. 分支操作

1

点击左下角的分支名(如 main

2

选择 Create new branch,输入分支名(如 feature/login

3

在新分支上工作,完成后切换回 main

4

更多操作 → Branch → Merge Branch,选择要合并的分支

在 VS Code 中连接 GitHub

VS Code 可以直接登录 GitHub,推送和拉取代码都很方便。

1

登录 GitHub

点击左下角的账户图标 → Sign in to Sync Settings → 选择 GitHub

在浏览器中授权 VS Code 访问你的 GitHub 账号

2

发布到 GitHub

源代码管理面板 → Publish to GitHub

选择仓库名、公开/私有,VS Code 会自动创建仓库并推送代码

3

推送和拉取

提交后,点击 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 都输密码:

1

生成 SSH 密钥:

$ ssh-keygen -t ed25519 -C "you@example.com"
# 一路回车使用默认设置
2

复制公钥内容:

$ cat ~/.ssh/id_ed25519.pub
# 复制输出的那一行文字(以 ssh-ed25519 开头)
3

在 GitHub 添加公钥:Settings → SSH and GPG keys → New SSH key,粘贴进去保存。

4

验证连接:

$ ssh -T git@github.com
Hi Transcendence! You've successfully authenticated...

推送与拉取

在 VS Code 中:

命令行方式:

# 在 GitHub 上先创建一个新仓库(空仓库),然后:

# 关联本地仓库与远端(SSH 格式)
$ git remote add origin git@github.com:username/repo.git

# 第一次推送
$ git push -u origin main

# 之后每次推送
$ git push

# 拉取远端最新代码
$ git pull

克隆项目

在 VS Code 中:

  1. Ctrl+Shift+P 打开命令面板
  2. 输入 Git: Clone
  3. 粘贴 GitHub 仓库地址
  4. 选择保存位置

命令行方式:

# 克隆别人的项目到本地
$ 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 的重要性倍增。推荐的工作模式:

  1. 开始前 commit 一次:让 Claude 做改动之前,先提交当前状态。这样出问题可以干净地回退。
  2. 用分支做实验git switch -c claude/feature-xxx,让 Claude 在这个分支里工作,满意了再合并进 main。
  3. 小步 commit:每完成一个功能点就提交一次,不要积累太多改动再提交。
  4. 查看 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 了。下一篇是这个系列的重点。