633 字
3 分鐘
Fork仓库同步与冲突解决
🛠️ Fork 仓库同步与冲突解决终极指南
本指南专门用于处理 Twilight 主题(或任何基于 Astro 的 Fork 项目)在原作者更新后,如何安全地同步新功能并保留个人定制内容。
一、 准备工作(仅需执行一次)
在你的本地项目根目录(Git Bash)中执行,建立与原作者仓库的“上游”联系:
# 将原作者仓库添加为 upstream(上游)git remote add upstream https://github.com/Spr-Aachen/Twilight.git二、 常规同步流程(无冲突时执行)
每当看到原作者发布了新版本,按照以下顺序执行命令:
- 同步网页端更改(防止本地与 GitHub 网页端不同步):
Terminal window git pull origin main - 抓取上游更新数据:
Terminal window git fetch upstream - 尝试合并更新:
Terminal window git merge upstream/main
三、 核心:解决合并冲突(Conflict)
如果执行 merge 后提示 CONFLICT,且分支名变为 (main|MERGING),请按以下步骤操作:
1. 核心资产备份
在操作前,请确保你本地记事本中存有以下文件的最新副本:
twilight.config.yaml(站点配置)- 其他你已经更改的文件
2. VS Code 手动排雷
打开 VS Code,找到左侧文件树中带有 红色感叹号 (!) 的文件:
- 操作要领:双击打开文件,会看到高亮冲突区(
<<<<<<< HEAD与>>>>>>>之间)。 - 根据需要选择需要的部分
- 保存确认:按下
Ctrl + S。确保文件左侧的红色感叹号消失。
四、 提交并推送(完成更新)
当所有文件的感叹号都清理干净后,回到 Git Bash 终端执行“胜利三连”:
# 0. 本地进行测试pnpm dev
# 1. 将修复后的文件添加到暂存区git add .
# 2. 提交更改,解除合并状态(引号内文字可自定义)git commit -m "解决冲突:成功同步上游更新并保留个人定制"
# 3. 将最终代码推送到你的 GitHub 仓库git push origin main避坑小贴士
- 网页端的局限性:GitHub 网页版的
Sync Fork在遇到权限冲突(尤其是跨仓库修改)时经常失效。本地命令行是解决冲突的唯一稳健方案。 - 保持频率:建议每两周同步一次。积压的更新越多,产生复杂冲突的概率就越大。
提示:执行完上述操作后,你的博客会自动触发 GitHub Actions 进行重新部署。只需等待 2 分钟,即可在你的域名下看到带新功能的博客!
部分信息可能已經過時