这是 Git 手册系列的第一篇。目标只有一个:让你今天就能用 Git 管好自己的代码,并且知道每条命令在干什么。不理解原理没关系,先把工作流跑通。
目录
- Git 是什么,解决什么问题
- 安装与初始配置
- 四个区域:工作区、暂存区、本地仓库、远程仓库
- 第一次提交
- 日常三板斧:status / add / commit
- 查看历史
- 撤销与回退(安全版)
- 连接远程仓库(GitHub / GitLab)
- 分支是什么(先会用最基础的)
- 初级常见错误
Git 是什么,解决什么问题
没有 Git 的时候,你是这样管理代码的:
| |
Git 做的事:把项目的每一次修改记录成"快照"(commit),你可以随时查看任何历史版本、回到任何历史版本、同时维护多条并行的修改线(分支),并和别人协作而互不覆盖。
安装与初始配置
| |
第一次使用必须先配置身份,否则提交会带上机器默认的匿名信息:
| |
验证:
| |
四个区域:工作区、暂存区、本地仓库、远程仓库
这是理解 Git 所有命令的钥匙:
| |
- 工作区:你正在编辑的文件
- 暂存区:下一次提交要包含的内容(一个"待打包区")
- 本地仓库:已经提交的历史快照
- 远程仓库:GitHub / GitLab / 自建服务器上的副本
为什么要多一个暂存区?因为你可以改 10 个文件,但只把其中 3 个相关的改动打成一次干净的提交。
第一次提交
| |
提交信息(commit message)的约定:一句话说清"做了什么",用动词开头。例如 修复登录页按钮错位、新增用户注册接口。不要写 update、fix、123。
.gitignore:告诉 Git 别管某些文件
| |
新建仓库第一件事就是写 .gitignore。如果已经把 node_modules 提交了,用 git rm -r --cached node_modules 把它移出版本库再提交。
日常三板斧:status / add / commit
你的日常循环就是:
| |
辅助命令:
| |
提交频率建议:完成一个"说得清的小目标"就提交一次。一天 3~10 次提交很正常;一周一次提交等于没用 Git。
查看历史
| |
每次提交有一个 40 位的哈希 id,平时用前 7 位即可指代(如 a1b2c3d)。
撤销与回退(安全版)
初级只需要记住三句,按"还没提交到哪一步"选:
| |
⚠️ git reset --hard 和 git push --force 会永久丢数据或改写共享历史,初级阶段先别碰,等中级篇再学。
连接远程仓库(GitHub / GitLab)
情形 A:本地已有项目,推到新建的远程仓库
在 GitHub 上创建一个空仓库(不要勾选初始化 README),然后:
| |
情形 B:从远程克隆一个已有项目
| |
日常同步
| |
认证推荐配置 SSH key(ssh-keygen 生成后把公钥贴到 GitHub 设置里),一次配置永久免密。
分支是什么(先会用最基础的)
分支 = 一条独立的修改线,互不影响。默认分支是 main。
| |
典型用法:
| |
初级记住一个原则:永远别直接在 main 上干活,做任何改动都先开分支。合并冲突暂时不用怕,中级篇会专门讲。
初级常见错误
1. 提交信息写 “update” 一个月后你自己都不知道这次提交干了什么。写具体点。
2. 把 .env、密钥提交了
先 git rm --cached .env 移除并写进 .gitignore。注意:历史里还有,密钥必须立即更换。
3. 在错误的目录 git init
比如在家目录 ~ 下执行了 init。删掉误建的 .git 目录即可:rm -rf ~/.git(确认路径后再执行)。
4. pull 下来一堆冲突,慌了
冲突不是错误,是 Git 在问你"两边都改了,听谁的"。先 git status 看哪些文件冲突,打开文件找 <<<<<<< 标记,手动改对后 add + commit。
5. 半年不 push 本地仓库丢了硬盘就没了。每天至少 push 一次。
本篇速查表
| 目的 | 命令 |
|---|---|
| 初始化 | git init |
| 看状态 | git status |
| 暂存 | git add <file> |
| 提交 | git commit -m "..." |
| 看历史 | git log --oneline |
| 撤销未暂存修改 | git restore <file> |
| 撤销已暂存 | git restore --staged <file> |
| 安全撤销某次提交 | git revert <id> |
| 克隆 | git clone <url> |
| 拉取 / 推送 | git pull / git push |
| 开分支 | git switch -c <name> |
| 合并 | git merge <name> |
掌握这些,你已经覆盖了个人项目 90% 的场景。下一篇《中级篇》讲分支协作模型、合并冲突的正确解法、stash、reset 的三种模式和 rebase 入门——也就是从"会用"到"用得对"。