轻松学习 Git:版本控制入门指南
I’m happy to translate the article for you, but I’ll need the full text you’d like translated. Could you please paste the content (excluding the source line you already provided) here? Once I have the text, I’ll translate it into Simplified Chinese while preserving the original formatting, markdown syntax, and technical terms.
Git
In technical terms: Git 是一个 Distributed Version Control System (DVCS)。
In simple terms: Git 是你项目的时间机器。它会跟踪你对代码所做的每一次修改,所以如果你弄坏了某些东西,只需“倒回”到之前的工作状态即可。
为什么我们使用它?
- Collaboration – 多人可以同时在同一文件上工作,而不会相互覆盖对方的工作。
- Distributed architecture – 每个开发者都有仓库的完整本地副本(包括历史记录和提交)。这使得离线工作成为可能,并消除单点故障。
- Branching & merging – 开发者为一个功能创建单独的分支,随后将其合并回主分支。
术语词典
| 术语 | 含义 |
|---|---|
| Repository (Repo) | 包含所有项目文件 以及 完整修订历史的文件夹。 |
| Commit | 在特定时间点的代码快照;由唯一哈希标识。 |
| Staging Area | 您准备下一次提交的文件列表。 |
| Local | 存储在个人电脑上的仓库。 |
| Remote | 存储在服务器上的仓库(例如 GitHub、GitLab)。 |
| Clone | 将远程仓库下载到本地电脑。 |
| Push | 将本地提交上传到远程服务器。 |
| Pull | 将远程服务器的更改下载到本地机器。 |
| Merge | 将一个分支的代码合并到另一个分支。 |
| Branch | 代码的平行版本;更改在合并之前不会影响主项目。 |
| HEAD | 指向您当前正在查看或工作的提交的指针。 |
| Origin | Git 为您克隆的远程 URL 默认给出的昵称。 |
| Pull Request (PR) | 请求将您的分支合并到主分支(在 GitHub/GitLab 上使用)。 |
核心架构
在进入命令之前,先了解三个阶段:
- 工作目录(工作台) – 实际编写代码的文件夹。
- 暂存区(箱子) – 从工作台挑选特定文件放入箱子。
- 本地仓库(运输卡车) – 将箱子封好并贴上标签。这就形成了一个 提交,项目历史中的永久部分。

仓库结构概览

src/– 包含实际的源代码,使项目保持有序。.gitignore– 列出 Git 应该有意忽略的文件/文件夹(例如,机密信息)。README.md– 说明手册,解释项目是什么以及如何运行。LICENSE– 法律文档,说明他人如何使用或复制你的代码。.git/– 隐藏的数据库,Git 在此存储整个项目的历史记录和保存点。
开发者工作流
初始化
告诉 Git 监视你的文件夹:
git init
检查状态
查看仓库的当前状态:
git status
暂存
创建一个名为 index.html 的文件。再次运行 git status —— 文件会以 红色(未跟踪)出现。将其移到暂存区:
git add index.html
提示: 要一次性暂存 所有 已更改的文件,可使用 git add .。暂存后,git status 会以 绿色(已准备好保存)显示该文件。
提交
将快照保存到历史记录(必须包含一条信息):
git commit -m "Created the homepage file"
-m = “信息”。
懒人快捷方式
对已经跟踪的文件同时进行暂存和提交:
git commit -am "Updated the style"
注意: 这 不会 暂存新(未跟踪)文件;它只会提交已修改或已删除的已跟踪文件。
历史
查看所有提交的列表:
git log
差异
显示工作目录与最近一次提交之间的变化:
git diff
这就是 Git 的基本工作流。从这里你可以进一步探索分支、远程协作以及 Git 提供的更多强大功能。祝编码愉快!
Source: …
Git Cheat Sheet
Diff
当你暂存或提交时,应该始终检查实际改动了什么。
git diff
Branching
Create a Branch
默认情况下,你位于 main(或 master)分支。创建一个新分支:
git branch dark-mode-feature
Switch Branches
切换到新分支:
git checkout dark-mode-feature
较新的 Git 版本也支持
git switch dark-mode-feature。
Merging
你在 dark-mode-feature 中编写了代码,提交并测试通过。现在把它合并回 main。
-
切换回
maingit checkout main -
合并特性分支
git merge dark-mode-feature
Going Remote
到目前为止,所有操作都在本地进行。要共享代码,需要一个远程仓库。
Clone
将已有仓库下载到本机:
git clone
Push
将本地提交上传到远程仓库:
git push origin main
Pull
从远程下载新更改到本地电脑:
git pull
Stashing
你正在开发新功能(代码凌乱,半成品)。突然出现一个关键 bug 需要修复。此时不能切换分支,因为工作未完成,也不能提交。可以临时保存你的改动:
git stash
Pop Stash
取回暂存的改动:
git stash pop
Reset
有时你提交得太早,需要回退。git reset 会把 HEAD 移动到指定的提交。它主要有两种方式。
Soft Reset
撤销提交 但保留代码改动 在暂存区。
# 回退一个提交(保留已暂存的改动)
git reset --soft HEAD~1
# 回退一个提交(保留未暂存的改动)– mixed reset
git reset HEAD~1
# 回到指定的提交
git reset
Hard Reset
撤销提交 并删除所有改动。它会把所有内容恢复到工作开始前的状态。
# 回退一个提交(删除提交并删除改动)
git reset --hard HEAD~1
# 回到指定的提交(删除所有改动)
git reset --hard
Warning: 这会永久删除你的工作。请谨慎使用。
Revert
如果已经把有问题的代码推送到共享的 main 分支,不能使用 reset(删除他人已下载的历史会导致冲突)。相反,创建一个新提交来撤销错误的提交:
git revert
Cherry‑Pick
你的团队成员在一个大型实验分支上修复了一个小 bug,但你不想要他们的其他改动。只把那个单独的提交应用到你的分支:
git cherry-pick
Rebase
你正在一个特性分支上工作。与此同时,main 分支已经有了新更新,使你的分支变得落后。与其进行混乱的合并,不如 rebase 你的工作到最新的 main,保持线性历史:
git rebase main
Tip
遇到紧急情况时:git commit、git push,让 CI/CD 流水线处理其余工作。
— Anonymous Developer