序言:认识 Git
Git 是一个开源的分布式版本控制系统,用于高效管理文件变更(尤其是代码),记录每一次修改历史,支持多人协作开发。
核心优势
- 版本追溯:定位任意版本的代码差异;
- 分支协作:多人并行开发互不干扰;
- 安全备份:本地 + 远程仓库双重保障,数据永不丢失。
一句话总结:Git = 文件变更的时光机 + 团队协作的桥梁 + 代码安全的守护者。
1. 启程 - 安装与初体验
1.1 下载与安装
前往官方下载页面获取安装包。以 Windows 为例,下载 exe 文件后双击运行。
安装向导中大部分选项保持默认即可,一路点击 Next。建议勾选将 Git Bash 添加到右键菜单,方便后续操作。
安装完成后,打开终端执行以下命令验证:
git --version
显示版本号即表示安装成功。
1.2 基础配置与仓库创建
亮明身份 配置全局用户信息,这是提交代码时的署名依据。
# 配置用户名和邮箱
$ git config --global user.name "你的用户名"
$ git config --global user.email "你的邮箱地址"
# 查看配置是否生效
$ cat .gitconfig
选择编辑器 配置默认文本编辑器,避免每次提交都弹出 Vim。
# 配置 VS Code
$ git config --global core.editor "code --wait"
初始化仓库 在目标目录下初始化 Git 仓库。
# 仓库初始化
$ git init
# 观察隐藏的 .git 文件夹 - Git 的'大脑'
$ cat .git/config
初窥状态
使用 git status 查看当前文件状态。未跟踪文件通常显示为红色,已暂存文件显示为绿色。
# 新建测试文件
$ vi test.txt
# 查看状态
$ git status
# 添加至暂存区
$ git add test.txt
2. 核心引擎 - 提交、历史与工作流
2.1 理解 Git 的三大区域
Git 的工作流程围绕三个核心区域展开:
- 工作区 (Working Directory) 你的编辑沙盒,直接看到的项目文件。所有变动尚未被 Git 记录。
- 暂存区 (Staging Area)
提交的预演台。通过
git add后的文件存放于此。核心作用是精准筛选要提交的内容,构建原子化提交。 - 版本库 (Repository)
历史保险箱。
.git目录下的数据库,永久存储提交快照,只增不减。
2.2 记录足迹 - 添加与提交
添加 (git add) 将工作区的变更添加到暂存区。
# 仅指定文件
$ git add <filename>
# 当前目录所有新增/修改
$ git add .
# 所有变更(包括删除)
$ git add -A
提交 (git commit) 将暂存区的变更打包成历史记录。
# 提交并附带说明
$ git commit -m "清晰、有意义的提交说明"
2.3 时光回溯 - 查看历史与差异
翻阅日志
# 简洁模式
$ git log --oneline
# 图形化展示分支关系
$ git log --graph --oneline --all
查看差异
# 比较工作区与暂存区
$ git diff
# 比较暂存区与本地仓库
$ git diff --staged
# 比较两个提交
$ git diff <commit1> <commit2>
查看快照
# 查看最新提交详情
$ git show
# 查看特定提交
$ git show <commit_hash>
3. 协作基石 - 分支与合并
3.1 开辟平行宇宙 - 分支
分支是 Git 最强大的功能之一,允许你在不影响主线的情况下进行实验。
# 创建分支
$ git branch <分支名>
# 切换分支
$ git switch <分支名>
# 创建并切换
$ git switch -c <新分支名>
# 查看所有分支
$ git branch -a
3.2 合而为一 - 合并
将其他分支的代码整合到当前分支。
# 合并指定分支
$ git merge <待合并分支>
4. 连接世界 - 远程仓库与协作
4.1 配置远程仓库
远程仓库托管在网络服务器上,作为代码共享与协作的中央枢纽。
生成 SSH 密钥
# 生成密钥对
$ ssh-keygen -t ed25519 -C "关联邮箱"
# 查看公钥
$ cat ~/.ssh/id_ed25519.pub
关联远程仓库
# 添加远程仓库
$ git remote add origin https://gitee.com/yourname/yourrepo.git
# 查看远程地址
$ git remote -v
4.2 推送与拉取
克隆项目
$ git clone https://gitee.com/yourname/yourrepo.git
获取更新
# 仅获取远程更新(不自动合并)
$ git fetch origin
# 获取并自动合并
$ git pull origin main
上传代码
# 首次推送建立追踪
$ git push -u origin main
# 后续简化推送
$ git push
5. 撤销与修复
5.1 后悔药? - 撤销与重置
撤销工作区修改 丢弃未暂存的修改。
$ git checkout -- test.txt
# 或新版命令
$ git restore test.txt
撤销暂存区修改 将文件从暂存区撤回。
$ git reset HEAD test.txt
# 或新版命令
$ git restore --staged test.txt
修改最新提交 补充漏掉的文件或修改注释。
$ git add 漏掉的文件
$ git commit --amend
回退提交
# 软回退(保留更改)
$ git reset --soft HEAD~1
# 硬回退(丢弃更改,慎用)
$ git reset --hard HEAD~1
# 安全回退(创建新提交抵消旧提交)
$ git revert <commit_id>
常用 Git 命令速查表
| 命令 | 作用 | 示例 |
|---|---|---|
git --version | 验证安装 | git --version |
git config --global user.name | 设置全局用户名 | git config --global user.name "John" |
git init | 初始化新仓库 | git init |
git status | 查看状态 | git status |
git add <文件> | 添加到暂存区 | git add index.html |
git commit -m "说明" | 提交到本地仓库 | git commit -m "初始化项目" |
git log | 查看历史 | git log --oneline |
git branch | 查看分支 | git branch |
git merge <分支> | 合并分支 | git merge feature |
git remote add origin | 关联远程仓库 | git remote add origin URL |
git push | 推送更改 | git push |
git pull | 拉取更新 | git pull |
git reset --hard | 彻底回退 | git reset --hard HEAD~1 |
git revert | 安全撤销 | git revert <id> |
掌握这些核心命令,你就已经具备了独立管理代码版本的能力。在实际工作中,多动手实践,遇到冲突时冷静分析,Git 会成为你开发中最得力的助手。


