博客Git版本管理:代码改崩了再也不怕回滚

说个真实的事:去年我有个博客主题改坏了,想恢复到之前的版本,结果发现根本没备份!只能硬着头皮重新改,折腾了大半天才弄好。

从那以后我就长记性了,把博客代码全部用Git管理起来。现在改代码随心所欲,改崩了就回滚,再也不用担心搞坏网站了。

今天就聊聊怎么用Git管理博客代码,这个技能真的能救命。

为什么博客需要版本控制?

很多博主的博客就是一堆文件放在服务器上,改了就改了,没有历史记录。这样做有几个问题:

  • 代码改崩了无法恢复
  • 不知道改了什么、什么时候改的
  • 多人协作容易冲突
  • 换电脑或重装系统容易丢代码

Git完美解决这些问题。每次修改都有记录,想回到任何时候的版本都可以。而且Git是分布式的,你可以把代码同时存在本地、服务器、GitHub等多个地方,想丢都丢不了。

Git基础概念速览

如果你完全不懂Git,我先用最简单的话解释一下:

概念解释类比
仓库(Repository)存放代码的地方一个文件夹
提交(Commit)保存一次修改游戏存档
分支(Branch)独立的开发线平行世界
合并(Merge)把分支合到一起世界线收束
远程仓库(Remote)网上的备份云存档

核心操作就这几个:

  • `git add`:把修改的文件加入暂存区
  • `git commit`:提交修改,相当于存档
  • `git push`:推送到远程仓库
  • `git pull`:从远程仓库拉取更新
  • `git log`:查看提交历史

博客Git管理实战步骤

第一步:在服务器安装Git

宝塔面板安装很简单:

```bash

CentOS

yum install git -y

Ubuntu/Debian

apt install git -y

```

第二步:初始化仓库

SSH登录服务器,进入博客根目录:

```bash

cd /www/wwwroot/你的博客目录

git init

```

这样这个目录就变成Git仓库了。

第三步:创建.gitignore文件

有些文件不需要纳入版本管理,比如上传的图片、缓存文件等。创建`.gitignore`文件:

```

用户上传的文件

zb_users/upload/

zb_users/avatar/

缓存

zb_users/cache/

日志

zb_users/logs/

配置文件(包含密码等敏感信息)

zb_users/c_option.php

```

第四步:首次提交

```bash

git add .

git commit -m "初始提交:博客代码基线"

```

这样就把当前所有代码都纳入版本管理了。

第五步:关联远程仓库

在GitHub或Gitee上创建一个私有仓库(私有!别公开),然后关联:

```bash

git remote add origin https://github.com/你的用户名/你的仓库.git

git push -u origin main

```

这样代码就有云端备份了。

日常工作流程

有了Git之后,你的日常工作流程应该是这样的:

改代码前先拉取最新版本:

```bash

git pull

```

修改代码,改完提交:

```bash

git add .

git commit -m "修改主题头部样式"

```

定期推送到远程:

```bash

git push

CentOS-第1张图片-无双博客

```

养成这个习惯,你的每次修改都有记录。

代码改崩了怎么回滚?

这是Git最强大的地方!假设你改了一段代码,网站崩了,想恢复到上一个版本:

查看提交历史:

```bash

git log --oneline

```

输出类似这样:

```

a1b2c3d (HEAD -> main) 修改主题头部样式

d4e5f6g 上周的修改

h7i8j9k 初始提交

```

回滚到指定版本:

```bash

回滚到上一个版本

git reset --hard HEAD^

回滚到指定版本

git reset --hard h7i8j9k

```

执行完命令,代码就恢复到那个版本了。整个过程几秒钟,比重新改代码快一万倍。

分支管理:大胆实验

如果你想改动比较大,怕改坏了,可以用分支:

```bash

创建并切换到新分支

git checkout -b feature/新功能

在新分支上随便改...

改完了,测试没问题,切回主分支合并

git checkout main

git merge feature/新功能

如果改崩了,直接删除分支就行

git branch -d feature/新功能

```

分支就像是平行世界,你在里面随便折腾都不会影响主世界。

服务器自动备份方案

如果你比较懒,可以设置自动备份。写个简单的shell脚本:

```bash

#!/bin/bash

cd /www/wwwroot/你的博客目录

git add .

git commit -m "自动备份 $(date +%Y%m%d)"

git push

```

然后用crontab设置定时任务,每天自动提交一次:

```bash

crontab -e

添加这行,每天凌晨3点执行

0 3 * * * /你的脚本路径/backup.sh

```

这样就算你忘了手动备份,服务器也会帮你保存代码。

常见问题FAQ

Q:Git占用空间大吗?

A:纯文本的代码占用很小,几万行代码也就几十MB。但如果你把图片也放进去了,那就会比较大。建议把上传的图片放到对象存储,不要放进Git仓库。

Q:私有仓库要钱吗?

A:GitHub私有仓库免费,Gitee也是免费的。完全够用,不用担心。

Q:服务器被黑了Git仓库怎么办?

A:这就是为什么要推送到远程仓库。即使服务器被删库,GitHub上还有备份。定期push,确保远程仓库是最新的。

Q:多台电脑怎么同步?

A:在一台电脑上push,另一台pull。Git会自动合并修改,如果有冲突会提示你手动解决。

Q:WordPress能用Git管理吗?

A:当然可以!方法一样。但WordPress插件太多,建议只管理主题和自定义代码,核心文件和插件可以忽略。

Q:Z-Blog的zb_users目录要提交吗?

A:zb_users里面有些是用户上传的内容和配置,建议只提交主题、插件代码,上传的文件和配置可以忽略。

推荐阅读


想学习更多博客运维技巧?添加微信15207283116,备注"博客运维",拉你进交流群!

标签:Git版本控制,博客运维,代码管理,网站备份