读完本文,您将了解 Git 是什么、它有什么用,创建自己的第一个 GitHub repository,并配置工作环境。我们特意通过 IDE 的图形界面来讲解 Git 操作:这样更直观,刚开始也更从容,不用记住一大堆命令。
示例和界面截图使用的是 JetBrains IDE;操作名称和位置可能因版本而异。练习时请使用单独的练习 repository。在实际项目中,请遵循项目自身关于分支、提交和推送更改的规则。
这种做法还有另一个好处。Claude Code 在幕后执行的正是同一套 Git 操作,只不过用的是终端命令。当它建议创建 commit、建立分支或推送更改时,背后执行的都是普通的 Git 命令。了解 IDE 按钮背后的操作,您就能看懂 Claude Code 提出的建议,并有依据地检查和确认。
为什么需要版本控制
刚开始做项目时,您可能觉得最重要的是让代码跑起来。但很快就会发现,代码变化得比它稳定运行还要频繁。您修复 bug、添加功能、改变主意、回退,然后又把它加回来。
想象一下,您正在开发自己的项目。一切顺利,直到要开始尝试新想法。您想改点东西,又担心把可用版本弄坏。怎么办?当然是复制整个项目。最后,磁盘上就会出现这些杰作:
MyProject/
├── main.py
├── main_backup.py
├── main_final.py
├── main_final2.py
├── main_really_final.py
├── main_really1_really_final2.py这是不是很熟悉?再想象一下,朋友也加入了项目。他也喜欢复制文件,只是有自己的一套。怎样才能知道哪个版本最新且能正常工作?谁改了什么?实验没成功时,又该怎么恢复?
没有保存下来的历史记录,就只能手动翻找文件副本:
- 可用的代码容易丢失或弄混;
- 没有统一的方法查找并恢复已保存的版本;
- 两三个人一起协作很不方便;
- 一片混乱,尝试新想法也让人顾虑重重。

像 Git 这样的版本控制系统,正是用来解决这些问题的。
视频:在终端中学习 Git 基础
这段视频会带您了解如何通过终端使用 Git,帮助您理解 IDE 按钮背后各项操作的原理。
视频中的示例使用 Java,但 Git 的基本操作对不同编程语言都一样。
Git 是什么:基本概念
Git 是一个版本控制系统,用于跟踪开发过程中的代码更改。它可以保存文件的不同版本,并协调多人共同开发同一个项目。
Repository(仓库,也常简称为 repo)是保存项目完整历史记录的地方,包括所有更改和文件版本。
Commit(提交)是一份已保存的项目快照,其中包含提交说明、作者信息,以及与父 commit 的关联。尚未提交和被忽略的文件不会进入这份快照。借助历史记录,您可以找到并恢复之前保存的版本。
每个 commit 都是项目的一张快照,接续在前一个快照之后,形成连续的更改历史。
Branch(分支)是指向某条开发线当前 commit 的名称。示例中的主分支叫作 main;您的 repository 可能使用其他名称,具体取决于设置和创建 repository 的方式。
从主分支 main 分出 develop 分支,以便并行开发。工作完成后,再将 develop 中的更改合并回 main。
Git 常用命令:幕后发生了什么
下面列出了一些通过终端操作 Git 的常用命令。我们会用 IDE 的图形界面,但了解各种操作背后对应哪些命令仍然很有用:每个按钮后面都有 Git 操作,Claude Code 操作您的 repository 时也会执行这些命令。可以把它们看作幕后发生的事情。
| 命令 | 作用 |
|---|---|
git init | 在当前文件夹中初始化新的 Git repository |
git clone | 根据 URL 将 repository 复制到新文件夹 |
git status | 显示哪些文件已更改、已暂存,以及哪些文件尚未纳入 Git 跟踪 |
git add | 将文件加入 index(staging),为下一次 commit 做准备 |
git commit | 将已暂存的更改记录为历史中的新快照 |
git push | 将本地 repository 中的 commit 推送到远程 repository |
git pull | 获取更改,并根据设置将它们合并到当前分支 |
git fetch | 从服务器下载更改,但暂时不将它们合并到您的分支 |
git branch | 显示、创建或删除分支 |
git checkout / git switch | switch 用于切换分支;checkout 还可以检出单独的 commit 和恢复文件 |
git merge | 将指定分支的更改合并到当前分支 |
git log | 显示 commit 历史 |
git diff | 不带任何选项时比较工作区文件与 index;已暂存的更改需单独查看 |
git restore | 恢复选定文件;未指定来源时,工作区文件会从 index 恢复,不一定来自最近一次 commit |
git reset | 更改 index 或当前分支的位置;具体影响取决于命令形式和模式 |
git stash | 暂时收起未完成的更改,之后可以再取回 |
git remote -v | 显示项目连接了哪些远程 repository |
git config | Git 配置,例如 commit 作者的姓名和 email |

不必背下整张列表。刚开始时,只要知道 IDE 和智能体的操作都基于 Git 命令就够了;一次界面操作可能会执行多条命令。例如,通过 Commit 提交时会用到 git commit,Push 按钮对应的是 git push。
- 工作区文件
- git add → index
- git commit → 历史记录
- git push → 服务器
图中展示了推送流程:通过 add 准备内容,通过 commit 在本地记录下来,再通过 push 推送 commit。反向操作 pull 会获取远程 commit,并根据设置将它们合并到当前分支。
这正是 Claude Code 会替您执行的操作。当它说要创建 commit 并推送更改时,背后对应的是 git add、git commit 和 git push。您可以在同一个 IDE 窗口中查看并检查结果。
代码的四种状态
使用版本控制时,代码在逻辑上会经过四种状态:
1. Working Directory(工作目录)。您正在电脑上编辑的项目文件。
2. Staging Area(暂存区)。为下一次 commit 准备的内容。在 JetBrains IDE 中,您可以通过变更列表操作,也可以启用单独的 staging 模式。普通 Commit 窗口中的复选框用于选择要提交的内容,但并不表示这些内容已经进入 Git index。
3. Local Repository(本地 repository)。保存在您电脑上的个人代码历史副本。即使没有互联网,也能在这里创建 commit、分支并进行合并。
4. Remote Repository(远程 repository)。托管在 GitHub、GitLab 或 Bitbucket 等服务上的代码中央存储库。它能可靠地保存代码,也是团队协作的基础。
当 Claude Code 请您将新文件纳入跟踪时,它会把文件从工作目录移到 staging,这对应的是 git add 命令。加入时会暂存文件当下的内容;之后若又有修改,需要重新暂存。如果这个文件不该加入(例如它只是临时文件),您可以拒绝。
Git 和 GitHub 有什么区别
请把这两个概念分清。Git 是一款在您的电脑本地运行的程序(无需联网也能使用),负责跟踪文件版本。GitHub 是一个云服务(网站),用于托管 Git repository 的远程副本。
在 GitHub 上可以创建 repository、跟踪更改,并与他人协作编写代码。对当今的开发者来说,GitHub 个人主页也是作品集的重要组成部分,可以展示给雇主。
在 GitHub 上创建第一个 repository

步骤 1。访问 https://github.com 并注册账号。
步骤 2。点击 New repository 按钮,创建新的 repository。

步骤 3。设置 repository 的选项:
- repository 名称 - 起一个有意义的名字;
- Public 或 Private - 请慎重选择可见性。Public 对所有人开放,Private 会限制访问。如果是不会公开的个人练习,可以选择 Private。
- Add a README file - 新建空项目时,添加 README 会比较方便。如果要推送已有的本地历史记录,请创建不带 README 的空远程 repository,以免出现两条互不相关的初始历史。
- Add .gitignore - 根据项目所用技术选择模板。下拉列表提供了常见语言的现成模板。这很重要:构建工具和包管理器会生成许多临时文件与缓存,不应该让它们塞满 repository;模板可以帮助 Git 忽略这些文件;
- Choose a license - 可以跳过;
- 点击
Create repository。

步骤 4。完成,您的第一个远程 repository 已创建。

安装和配置 Git
下面展示的是 IntelliJ IDEA 界面。其他 JetBrains IDE 也提供类似操作,但按钮位置和菜单项名称可能因版本而异。请认准操作名称,您可以通过 IDE 的操作搜索来查找。
要使用 Git,首先需要安装它。如果您使用 JetBrains IDE,而系统中还没有 Git,IDE 很可能会主动提示安装;直接按提示操作即可。
通过 File | Close Project 关闭当前项目。在启动页面(Welcome Screen)点击 Clone Repository(某些版本中按钮名称为 Get from VCS)。

如果您想手动安装 Git,可以从官方网站下载:https://git-scm.com/downloads。
一个重要细节
第一次创建 commit 时,Git 需要作者姓名和 email。这是 commit 的署名信息,并非账号登录信息。若要关联到 GitHub,请使用账号设置中已验证的地址;如果不想公开个人 email,也可以使用 GitHub 提供的 noreply 地址。
GitHub 会根据 email 将 commit 与个人主页关联起来。但 email 地址相同并不保证提交会出现在活动图表中,这还取决于其他条件。
要让 Claude Code 直接使用 Git 和 GitHub,需要安装什么
创建本地 commit 和分支,只需安装 Git,无需登录 GitHub。要操作远程 repository,则需要配置访问权限。GitHub CLI (gh) 是用于 PR 和其他 GitHub 功能的辅助工具,不是 Git 的必备组件。
1. Git。用于操作本地历史记录。您可以通过 IDE 或 Git 官方网站安装。
2. GitHub CLI(gh)是 GitHub 官方的命令行工具。它有什么用?借助它,Claude Code 可以直接在终端中创建 pull request、读取 issue 并查看检查状态,无需切换到浏览器。安装方式取决于您的操作系统。
您的操作系统对应的安装说明见 GitHub CLI 官方页面。安装后,使用 gh --version 检查该工具是否可用。
如果选择使用 GitHub CLI,请启动访问权限配置并按提示操作。对于 GitHub.com,您可以选择 HTTPS,并通过浏览器登录:
# 在终端中登录 GitHub 账号
gh auth loginClaude Code 可以使用 git 管理历史记录,并使用 gh 调用 GitHub 功能。如果您选择这种方式操作 GitHub,就需要安装 gh 并运行 gh auth login。创建 PR 和推送 commit 都会根据您的任务执行,前提是您先检查将要发送的内容。
main 和 master
repository 中常见的分支名称有 main 和 master。GitHub 通常建议使用 main;Git 在本地初始化时则会考虑自身版本和 init.defaultBranch 设置。请确认项目中实际使用的分支名称。
这两个名称都只是普通分支。使用示例命令时,请替换为您的 repository 中实际的分支名称。
Git 如何与 Claude Code 配合
了解 Git 的基本概念后,您就更容易看懂 Claude Code 的操作。它可以替您执行这些操作,使用时请留意以下几点:
- 替您执行
git add、git commit、git push等命令,也就是 IDE 按钮背后的那些操作; - 建议将文件纳入跟踪(
git add),由您决定是否需要把它加入历史记录; - 提供一条写好的 commit 信息,您可以查看它将记录什么,再确认或修改;
- 通过 GitHub CLI 创建和评论 pull request(PR,即将一个分支合并到主分支的提议),并查看检查状态。
确认之前,请先查看哪些文件和更改会进入 commit。Claude Code 会像 IDE 一样以 diff 的形式展示它们。这就是您的检查点:您始终知道哪些内容会进入项目历史并被推送到服务器。
GO TO FULL VERSION