🎯 为什么博客需要Git?

在Hexo博客中使用Git,不仅能实现版本控制,还能配合GitHub Actions实现自动化部署。本教程将带你从零开始掌握博客必备的Git技能。

📦 基础概念

Git工作区域

1
工作区(Working Directory) → 暂存区(Staging Area) → 本地仓库(Repository) → 远程仓库(Remote)

博客文件状态

  • 已修改(modified):修改了文件,还未提交
  • 已暂存(staged):标记了要提交的文件
  • 已提交(committed):文件已安全保存在本地仓库

🚀 博客日常操作

1. 新建文章并提交

1
2
3
4
5
6
7
# 创建新文章
hexo new post "我的新文章"

# 编辑完成后
git add source/_posts/我的新文章.md
git commit -m "发布新文章:我的新文章"
git push origin main

2. 修改文章内容

1
2
3
4
5
6
7
8
9
10
# 修改文章内容后
vim source/_posts/我的新文章.md # 编辑文章

# 查看修改了什么
git diff source/_posts/我的新文章.md

# 提交修改
git add source/_posts/我的新文章.md
git commit -m "修正文章格式和错别字"
git push origin main

3. 修改网站配置

1
2
3
4
5
6
7
8
9
10
# 修改主题配置后
vim _config.butterfly.yml

# 查看所有修改
git status

# 选择性提交
git add _config.butterfly.yml
git commit -m "更新主题配色方案"
git push origin main

📝 实用命令清单

查看状态和历史

1
2
3
4
5
6
7
8
9
10
11
# 查看当前状态
git status

# 查看提交历史
git log --oneline --graph --decorate

# 查看文件修改历史
git log --oneline source/_posts/文章名.md

# 查看具体修改内容
git diff 文件名

分支管理(高级用法)

1
2
3
4
5
6
7
8
9
10
# 创建新分支写文章
git checkout -b draft-new-post

# 在新分支上写文章
hexo new post "草稿文章"

# 完成后再合并到main分支
git checkout main
git merge draft-new-post
git push origin main

🔄 回滚操作详解

场景1:文章内容写错了

1
2
3
4
5
6
7
8
9
10
# 查看提交历史
git log --oneline

# 回滚到指定版本(保留历史)
git revert abc123
git push origin main

# 或者彻底回滚(删除历史)
git reset --hard abc123
git push --force origin main

场景2:只回滚单个文件

1
2
3
4
# 只回滚文章内容,不影响其他配置
git checkout HEAD~1 -- source/_posts/文章名.md
git commit -m "回滚文章内容到之前版本"
git push origin main

场景3:使用GitHub网页回滚

  1. 访问GitHub仓库 → Commits
  2. 找到要回滚的提交 → 点击"Revert"
  3. 自动创建回滚提交,无需命令行

⚡ 高效工作流

每日写作流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 1. 开始写作前拉取最新代码
git pull origin main

# 2. 创建新文章
hexo new post "$(date +%Y-%m-%d)-今日文章"

# 3. 编辑文章(用你喜欢的编辑器)
code source/_posts/$(date +%Y-%m-%d)-今日文章.md

# 4. 本地预览(可选)
hexo server

# 5. 提交并推送
git add .
git commit -m "发布新文章:$(date +%Y-%m-%d)-今日文章"
git push origin main

批量操作技巧

1
2
3
4
5
6
7
8
9
# 一次性提交多个修改
git add .
git commit -m "更新:新增Redis教程,修改主题配置,添加友情链接"
git push origin main

# 忽略某些文件不提交
echo "draft-*.md" >> .gitignore
git add .gitignore
git commit -m "忽略草稿文件"

🎨 高级技巧

提交信息规范

1
2
3
4
# 好的提交信息示例
git commit -m "文章:添加Redis集群配置教程"
git commit -m "修复:修正MySQL教程中的语法错误"
git commit -m "主题:更新导航栏样式"

备份策略

1
2
3
4
5
6
7
# 创建备份分支
git branch backup-$(date +%Y%m%d)
git push origin backup-$(date +%Y%m%d)

# 定期清理旧备份
git branch -d backup-20241101
git push origin --delete backup-20241101

📱 移动设备写作

手机/平板操作

1
2
3
4
5
# 使用GitHub移动端或第三方App
# 工作流程:
# 1. 手机编辑Markdown文件
# 2. 通过GitHub App提交
# 3. 自动部署完成

🔧 常见问题解决

推送被拒绝

1
2
3
4
# 先拉取最新更改
git pull origin main
# 解决冲突后再次推送
git push origin main

误提交敏感信息

1
2
3
4
# 如果提交了密码等敏感信息
git reset --hard HEAD~1
git push --force origin main
# 然后修改文件重新提交

🎯 最佳实践总结

  1. 小步快跑:每次只提交一个逻辑修改
  2. 清晰描述:提交信息要说明修改了什么
  3. 及时备份:重要修改后立即推送
  4. 分支管理:复杂修改使用分支
  5. 定期清理:删除无用分支和旧备份

📚 学习资源


💡 小贴士:刚开始记不住命令没关系,把常用命令贴在显示器旁边,用几次就熟练了!

🚀 效率提升:配合GitHub Actions,你的git push origin main就是一键发布的魔法棒!