Git 是一个版本管理工具。你可以把它理解成项目的“时间机器”:每次完成一小段工作,就保存一个快照;以后如果改坏了,可以回头看、对比、撤销,也可以和 GitHub 这类远程仓库同步。
这篇文章不讲太多底层原理,只整理日常最常用的一套 Git 操作。
先理解三个区域
Git 日常操作主要围绕三个区域:
| |
对应到命令就是:
| |
git add 是把改动放进暂存区,git commit 是把暂存区里的内容真正保存成一次历史记录。
第一次配置 Git
新电脑上使用 Git 前,建议先设置用户名和邮箱:
| |
查看当前配置:
| |
这些信息会记录在每次提交里,方便以后知道是谁提交了这次改动。
初始化一个仓库
如果一个文件夹还不是 Git 仓库,可以进入这个项目目录后执行:
| |
然后查看当前状态:
| |
git status 是最常用的命令之一。只要不知道现在发生了什么,就先看它。
完成一次提交
日常最标准的保存流程是:
| |
例如你写完一篇博客文章:
| |
如果这次修改了多个文件,也可以直接:
| |
提交说明建议写清楚“做了什么”,不用太长,但要能看懂。
查看历史记录
查看提交历史:
| |
更简洁的写法:
| |
查看某一次提交改了什么:
| |
提交 ID 不需要写完整,通常复制前 7 位左右就够了。
查看文件改动
查看工作区里还没暂存的改动:
| |
查看已经 git add 进暂存区、但还没提交的改动:
| |
这是提交前很有用的一步,可以避免把不该提交的内容带进去。
连接远程仓库
如果你已经在 GitHub 上创建了仓库,可以把本地仓库和远程仓库关联起来:
| |
查看远程仓库地址:
| |
第一次推送:
| |
以后再推送就可以直接:
| |
如果你的默认分支叫 master,就把上面的 main 改成 master。
从远程拉取更新
如果远程仓库有别人提交的内容,或者你在另一台电脑上改过代码,回到当前电脑后可以拉取:
| |
它大致等于“先下载远程更新,再合并到当前分支”。
日常建议是:
| |
先拉再改,可以减少冲突。
分支的基本用法
分支适合用来做一段独立修改,比如写新功能、改页面、尝试新样式。
查看当前分支:
| |
创建并切换到新分支:
| |
切回主分支:
| |
把分支合并回主分支:
| |
合并完成后,如果不再需要这个分支,可以删除:
| |
撤销还没提交的修改
如果某个文件改坏了,还没有 git add,可以丢弃这个文件的改动:
| |
例如:
| |
如果已经 git add 了,但还没有提交,可以先取消暂存:
| |
然后再决定是否丢弃工作区修改。
修改上一次提交
如果刚提交完,发现提交说明写错了,可以改最后一次提交说明:
| |
如果刚提交完,发现漏了一个文件:
| |
--no-edit 表示沿用上一次提交说明。
注意:如果这次提交已经推送给别人使用了,修改历史前要谨慎。
回退一次提交
如果想撤销某一次已经提交的改动,比较稳妥的方式是 revert:
| |
它不会删除历史,而是新建一个“反向提交”。这种方式适合已经推送到远程仓库的提交。
不建议新手随便使用:
| |
它会直接丢弃改动,比较危险。
处理冲突
冲突通常发生在两个人改了同一个文件的同一段内容,或者你在两台电脑上分别改了同一处。
冲突文件里一般会出现类似内容:
| |
处理步骤:
- 打开冲突文件。
- 保留你真正想要的内容。
- 删除
<<<<<<<、=======、>>>>>>>这些标记。 - 保存文件。
- 重新提交。
命令大概是:
| |
如果是 git pull 时产生的冲突,解决后继续提交即可。
忽略不需要提交的文件
有些文件不应该提交,比如缓存、构建产物、临时文件、密钥文件。可以写进 .gitignore:
| |
对 Hugo 博客来说,是否提交 public/ 取决于你的部署方式:
| |
如果你使用 Cloudflare Pages、GitHub Actions 等自动构建,一般可以不提交 public/。如果你的部署方式要求上传静态产物,就不要忽略它。
日常推荐流程
个人维护博客时,可以按这个流程来:
| |
如果只是写新文章:
| |
如果是改主题样式:
| |
常用命令速查
| 目的 | 命令 |
|---|---|
| 查看状态 | git status |
| 查看改动 | git diff |
| 暂存全部改动 | git add . |
| 提交 | git commit -m "message" |
| 查看历史 | git log --oneline |
| 拉取远程更新 | git pull |
| 推送到远程 | git push |
| 查看分支 | git branch |
| 新建并切换分支 | git switch -c 分支名 |
| 切换分支 | git switch 分支名 |
| 合并分支 | git merge 分支名 |
| 丢弃某个文件修改 | git restore 文件路径 |
| 取消暂存 | git restore --staged 文件路径 |
| 撤销某次提交 | git revert 提交ID |
| 查看远程仓库 | git remote -v |
一个简单心法
日常使用 Git 时,记住这几件事就够了:
- 不确定状态时,先
git status。 - 提交前先
git diff看一眼。 - 每次提交只做一件相对完整的事。
- 提交说明写清楚,不要全都叫
update。 - 已经推送到远程的历史,不要轻易乱改。
Git 一开始会显得命令很多,但日常真正高频使用的其实不多。熟悉 status、add、commit、pull、push、diff 之后,就已经可以完成大多数个人项目和博客维护工作了。