前言
最近把主题换成了hexo-butterfly
,顺便把之前的文章迁移过来了。
打算对这个主题做一些优化。
但是优化后又要提交到git上,以便从其他电脑进行管理。
然后如果hexo-butterfly
的主题更新,我又要升级的话该怎么办。
搜了下,发现git remote
这个命令可以解决我的问题。
拉取最新的主题代码
我这里在github上面建了个仓库,模拟了下主题的更新。仓库地址
- 进入自己的
hexo
代码文件夹
- 执行
git clone -b main git@github.com:oytoyt/theme-online.git themes/test
模拟拉取最新的主题代码
- 进入到
themes/test
文件夹,执行git remote -v
查看远程仓库地址。
1 2 3
| ❯ git remote -v origin git@github.com:oytoyt/theme-online.git (fetch) origin git@github.com:oytoyt/theme-online.git (push)
|
修改远程仓库地址
- 将原来的仓库地址改为
upstream
,执行git remote rename origin upstream
- 提前建一个空的仓库用来存放自己修改后的主题代码,我这里用的是
git@github.com:oytoyt/thtme-my.git
- 将自己的仓库地址设置为
origin
,执行git remote add origin git@github.com:oytoyt/thtme-my.git
1 2 3 4 5 6 7 8 9 10
| ❯ git remote rename origin upstream ❯ git remote -v upstream git@github.com:oytoyt/theme-online.git (fetch) upstream git@github.com:oytoyt/theme-online.git (push) ❯ git remote add origin git@github.com:oytoyt/thtme-my.git ❯ git remote -v origin git@github.com:oytoyt/thtme-my.git (fetch) origin git@github.com:oytoyt/thtme-my.git (push) upstream git@github.com:oytoyt/theme-online.git (fetch) upstream git@github.com:oytoyt/theme-online.git (push)
|
对代码进行修改
我这里将themes/test/README.md
文件中的内容进行了如下修改
原来是
提交修改
1 2 3 4 5 6 7 8 9 10 11 12 13
| ❯ git add . ❯ git commit -m 'feat: 改成自己的' [main dac2c31] feat: 改成自己的 1 file changed, 3 insertions(+), 1 deletion(-) ❯ git push origin Enumerating objects: 8, done. Counting objects: 100% (8/8), done. Delta compression using up to 8 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (8/8), 682 bytes | 682.00 KiB/s, done. Total 8 (delta 0), reused 5 (delta 0), pack-reused 0 To github.com:oytoyt/thtme-my.git * [new branch] main -> main
|
拉取最新的主题代码
前置条件:我已经对theme-online
仓库进行了下面更新
- 执行
git fetch upstream main
拉取最新的主题代码
- 执行
git merge upstream/main
合并最新的主题代码
1 2 3 4 5 6 7 8 9 10 11 12
| ❯ git fetch upstream main remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0 (from 0) Unpacking objects: 100% (3/3), 224 bytes | 44.00 KiB/s, done. From github.com:oytoyt/theme-online * branch main -> FETCH_HEAD 4fe165d..415d7b6 main -> upstream/main ❯ git merge upstream/main Auto-merging README.md CONFLICT (content): Merge conflict in README.md Automatic merge failed; fix conflicts and then commit the result.
|
冲突代码
1 2 3 4 5 6 7
| <<<<<<< HEAD version: 1.0-my
这是我的主题 ======= version: 2.0 >>>>>>> upstream/main
|
- 如果出现冲突,解决冲突后,推送到自己的代码仓库
1 2 3 4 5 6 7 8 9 10 11 12
| ❯ git add . ❯ git commit -m 'fix: merge' [main e90157e] fix: merge ❯ git push origin Enumerating objects: 10, done. Counting objects: 100% (10/10), done. Delta compression using up to 8 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (6/6), 514 bytes | 514.00 KiB/s, done. Total 6 (delta 0), reused 0 (delta 0), pack-reused 0 To github.com:oytoyt/thtme-my.git dac2c31..e90157e main -> main
|
总结
这样就是利用git remote去管理自己的主题代码,并且可以随时拉取最新的官方主题进行更新。
1 2 3 4 5 6 7 8 9 10
| ### 拉取最新代码 git fetch upstream main
### 合并最新代码 git merge upstream/main
### 解决冲突
### 推送到自己的主题仓库 git push origin
|