问题——git子模块更新问题
最近正在将博客从pelican迁移到Hugo,最终选择了主题even,为了管理方便和规范化,我选择了submodule模式clone该项目。在将原作者主题项目添加到本地项目后,才发现别人的项目无法修改提交,于是我fork原作后重新添加,现在修改是可以了,但新的问题是我如何能和原作保持同步更新呢?
设置upstream
在经过一番搜索和学习之后,找到了解决办法,将子模块设置一个新的上游,然后fetch、merge后就可以了,非常简单,代码如下:
cd /hugo-log-path/theme/even
# 这里最好设置https地址,而不是ssh地址,原因是vercel这类平台在拉submodule的时候不支持
# 上游项目是原作者的git地址
git remote add upstream https://github.com/olOwOlo/hugo-theme-even
# 从上游拉取新代码
git fetch upstream
# 从本地上游master分支合并到本地
git merge upstream/master
最后两步的fetch和merge可以合并为一个pull命令
# 从上游拉取master分支合并到本地
git pull upstream master