抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

最近一直忙于工作,很久没有维护网站了。今天检查更新时发现很多依赖项都有了新版本,因此记录下这次更新维护的过程。

我的项目基于 volantis-x/hexo-theme-volantis 的 Fork。首先,我将其 Fork 到自己的 GitHub 仓库,并将其 Clone 到项目的 themes/volantis 文件夹中,作为整个项目的子模块(在 .gitmodules 中进行了配置)。这个子模块包含了我自定义的配置,现在我既想保留这些修改,又希望能够同步上游仓库的最新版本。

🔄 完整更新流程

1️⃣ 在子模块中同步上游更新

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 进入子模块目录
cd themes/volantis

# 添加上游仓库链接
git remote add upstream https://github.com/volantis-x/hexo-theme-volantis

# 验证,此时会显示origin和upstream链接
git remote -v

# 检查当前状态,确保没有未提交的更改
git status

# 获取上游仓库的最新内容
git fetch upstream

# 合并上游的 7.x 分支到当前分支
git merge upstream/7.x

⚠️ 注意

  • 如果合并没有冲突,Git 会自动创建合并提交。
  • 如果有冲突,需要手动解决后执行以下命令:
1
2
git add .
git commit -m "解决合并冲突"

2️⃣ 更新分支名称(从 6.0 改为 7.x)

1
2
3
4
5
6
7
8
9
10
11
# 确保当前在 6.0 分支
git checkout 6.0

# 重命名分支为 7.x
git branch -m 7.x

# 推送新分支到远程并设置上游
git push origin -u 7.x

# (可选)删除远程的旧分支
git push origin --delete 6.0

3️⃣ 在主项目中记录子模块更新

1
2
3
4
5
6
7
8
9
10
11
# 返回主项目根目录
cd ../..

# 添加子模块的更新
git add themes/volantis

# 提交子模块版本更新
git commit -m "更新 volantis 子模块到 7.x 版本"

# 推送到主项目仓库
git push

🔑 关键要点

  1. 🔒 分支安全:删除旧的 6.0 分支不会影响 7.x 分支的提交历史,因为 Git 分支只是指向提交的指针。

  2. 🧪 测试建议:在删除旧分支前,先确认新版本工作正常。可以通过创建备份标签来实现:

    1
    2
    git tag backup-6.0-final 6.0
    git push origin backup-6.0-final
  3. ⚔️ 冲突处理:如果合并时遇到冲突,仔细检查冲突文件中的 <<<<<<<=======>>>>>>> 标记,选择保留适合的代码。

评论



Powered by Hexo | Theme keep Volantis

本站总访问量 总访客数 🌎