upgrade hexo, theme

之前贪图省事儿,我把整个 hexo 的 folder 作为一个repository 放在了私有库里管理,在这个假设之下,我今天更新了hexo和主题。

更新 hexo

1
2
npm install hexo -U
npm install hexo-cli -U

更新主题

我之前删除了本地的主题文件中的 .git 文件,所以我的做法是:

找出来之前的base, 得到delta的部分,cherry-pick到最新的branch。

首先,找出来之前的base。

1
2
3
4
5
git clone <repo-of-the-theme>
cd <repo-of-the-theme>
git log # and to find the date last time I modified theme files and got the <git-hash-for-mod-base>
git checkout <git-hash-for-mod-base>
git checkout -b mod_branch

把现在的theme文件通过copy来apply上去。

1
2
3
4
cp -r <path_of_previous_theme>/* <repo-of-the-theme>
cd <repo-of-the-theme>
git add .
git commit -m "my_mod"

cherry-pick到最新的branch。

1
2
git checkout master
git cherry-pick mod_branch

这时候如果遇到需要手动解决的conflict,手动解决一下,解决完之后,做cherry-pick

1
2
git add .
git cherry-pick --continue

至此,主题的local repo就已经是 latest + mod_by_me 的了。

管理自己的主题 repo

在主题文件中创建自己的branch

1
git checkout -b my_branch

设定 upstream branch 为远端的分支,比如这里是master

1
git branch --set-upstream-to=origin/master my_branch

更新

1
git pull --rebase

设定 push 远端为自己的 (private) repo,然后 push到自己的远端 repo

1
2
3
4
5
6
7
8
9
10
11
12
❯ git remote -v
origin https://github.com/theme-next/hexo-theme-next (fetch)
origin https://github.com/theme-next/hexo-theme-next (push)
~/note/themes/next ⇡
❯ git remote set-url --push origin [email protected]:littlewey/hexo-theme-next

~/note/themes/next ⇡
❯ git remote -v
origin https://github.com/theme-next/hexo-theme-next (fetch)
origin [email protected]:littlewey/hexo-theme-next (push)

❯ git push origin HEAD