IndieShow 图标IndieShow 使用文档

同步最新代码

指导如何将 IndieShow 项目与官方模板保持同步,包括使用 Git 远程仓库同步、选择性应用更新、保护自定义内容,以及依赖包更新和版本管理的最佳实践

IndieShow-Starter-Nuxt 模板会定期更新,增加新功能、修复 bug 以及优化性能。本文档将指导你如何将你的项目与最新版本保持同步。

为什么需要同步代码?

定期同步最新代码有以下好处:

  1. 获取新功能:享受模板新增的功能和组件
  2. 修复 Bug:解决已知问题和安全漏洞
  3. 性能提升:获得性能优化和加载速度改进
  4. 确保兼容性:与最新的浏览器和设备保持兼容

同步方式

根据你的项目状态和开发进度,有以下几种同步方式:

1. Git 远程仓库方式(推荐)

如果你是通过 Fork 或 Clone 方式使用模板,可以通过 Git 远程仓库同步:

添加上游仓库

# 添加原始模板仓库作为远程上游仓库
git remote add upstream https://github.com/WaveAny/IndieShow-Starter-Nuxt.git
 
# 验证远程仓库
git remote -v

获取最新更新

# 获取上游仓库的最新代码
git fetch upstream
 
# 切换到你的主分支
git checkout main
 
# 合并上游更改
git merge upstream/main

处理合并冲突

如果出现合并冲突,你需要手动解决:

  1. 使用编辑器或 IDE 打开冲突文件
  2. 查找冲突标记 (<<<<<<<, =======, >>>>>>>)
  3. 编辑文件解决冲突,保留你需要的代码
  4. 保存文件并继续合并
# 标记冲突已解决
git add .
 
# 完成合并
git commit -m "合并上游更新并解决冲突"

2. 选择性应用更新

如果你对模板进行了大量自定义,可能更适合选择性应用更新:

  1. 查看原始仓库的更新日志或提交记录
  2. 识别对你有用的更新
  3. 手动将这些更新应用到你的项目中

3. 使用差异比较工具

使用差异比较工具,如 Beyond Compare 或 VS Code 的内置比较功能:

  1. 下载最新版模板代码
  2. 使用工具比较你的项目与最新模板
  3. 选择性合并需要的更改

保护自定义内容

同步更新时,确保不覆盖以下自定义内容:

  1. 环境变量:检查 .env 文件,确保你的自定义环境变量不被覆盖
  2. 内容文件:保留 content/ 目录中的自定义内容
  3. 自定义组件:确保你添加的组件不会被覆盖
  4. 配置文件:谨慎合并 config/ 目录下的文件,特别是 theme.tsnav.ts
  5. 国际化文件:保留 i18n/locales/ 中的自定义翻译

最佳实践

创建专门的分支

在合并更新前创建专门的分支:

# 创建更新分支
git checkout -b update-template
 
# 在此分支上执行合并
git merge upstream/main
 
# 测试确认无问题后再合并到主分支
git checkout main
git merge update-template

保持良好的版本控制习惯

  1. 常规提交:经常提交代码,保持小而清晰的提交
  2. 提交信息:使用明确的提交信息描述你的更改
  3. 版本标签:在重要里程碑使用版本标签

例如:

git commit -m "feat: 添加联系表单组件"
git commit -m "fix: 修复移动端导航栏显示问题"
git tag -a v1.2.0 -m "发布版本 1.2.0"

自动化测试

合并更新后运行测试,确保功能正常:

# 安装依赖
pnpm install
 
# 运行类型检查
pnpm type-check
 
# 运行测试(如果有)
pnpm test
 
# 启动开发服务器检查功能
pnpm dev

更新依赖包

除了代码同步,也需要定期更新依赖包:

# 查看过期依赖
pnpm outdated
 
# 更新所有依赖
pnpm update
 
# 选择性更新依赖
pnpm update @nuxt/ui @nuxtjs/i18n

安全更新

优先更新安全相关的依赖:

# 检查安全漏洞
pnpm audit
 
# 修复安全问题
pnpm audit fix

记录更新日志

每次同步更新后,记录重要变更:

  1. 创建或更新 CHANGELOG.md 文件
  2. 记录新增功能、修复问题和重大变更
  3. 标注版本号和日期
# 更新日志
 
## v1.2.0 (2023-10-15)
 
### 新增
- 添加联系表单组件
- 增加深色模式切换功能
 
### 修复
- 修复移动端导航栏显示问题
- 解决 Safari 浏览器兼容性问题
 
### 变更
- 优化首页加载性能
- 更新依赖包到最新版本

通过定期同步代码和依赖更新,你可以确保你的 IndieShow-Starter-Nuxt 项目始终保持最新状态,享受最新功能和性能改进。

下一步