我的小屋哒٩(๑❛ᴗ❛๑)۶


[Hitokoto]

:D 获取中...

最近,自己使用的Hexo博客主题Material-X有新的版本更新,使用普通的方法git clone会覆盖自己修改后的文件,使得DIY的主题丢失。
通过查阅有关资料,总结出了以合并文件的形式更新当前的主题文件的方法喔~

PS

  1. git pull用法:https://blog.csdn.net/chaiyu2002/article/details/82120256

  2. 最开始更新主题的时候,直接使用git pull命令,然而,出现了报错:

error: Your local changes to the following files would be overwritten by merge:
_config.yml
Please commit your changes or stash them before you merge.
Aborting

原来,pull新版本主题文件的时候,本地的主题文件也DIY修改过,两者文件内容不同,导致发生冲突(即报错中的 _config.yml 文件)。

为了解决问题,同时本着无损合并代码的方式更新,在网络上找到了一篇文章。
原文出自:https://www.jianshu.com/p/920ad324fe64

主题更新步骤

  1. 使用Git Bash工具跳转到主题文件对应的目录中,如我的是:

D:\Program Files\Hexo\themes\material-x

  1. 首先,更新工作的状态树:
1
git add .
  1. 之后,输入如下命令,将文件放在堆栈中,获取更新后,再弹栈:
1
2
3
git stash
git pull
git stash pop

执行这几条简单的命令之后,Hexo主题便可以无损更新。

操作截图如下:

示意图

附:相关Git命令知识

git add .
他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。

git stash
能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。

git stash save
作用等同于git stash,区别是可以加一些注释

git stash list
查看当前stash中的内容

git stash pop
将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。
注:该命令将堆栈中最近保存的内容删除(栈是先进后出)
如果从stash中恢复的内容和当前目录中的内容发生了冲突,也就是说,恢复的内容和当前目录修改了同一行的数据,那么会提示报错,需要解决冲突,可以通过创建新的分支来解决冲突。

git stash apply
将堆栈中的内容应用到当前目录,不同于git stash pop,该命令不会将内容从堆栈中删除,也就说该命令能够将堆栈的内容多次应用到工作目录中,适应于多个分支的情况。
堆栈中的内容并没有删除。
可以使用git stash apply + stash名字(如stash@{1})指定恢复哪个stash到当前的工作目录。

git stash clear
清除堆栈中的所有内容

git stash show
查看堆栈中最新保存的stash和当前目录的差异。

通过git stash将工作区恢复到上次提交的内容,同时备份本地所做的修改,之后就可以正常git pull了,git pull完成后,执行git stash pop将之前本地做的修改应用到当前工作区。


感谢你的耐心阅读呀(๑๑),原创总结不易,收藏并评论一下呗~

你的支持就是我前进的动力呀~


 评论



博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Material X 作为主题 , 总访问量 总字数 27.9k
载入天数...载入时分秒...

2019 © Sublime.
upyun