git
Git
概述
git 是一个分布式版本控制系统,
版本控制 是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。
分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:
- 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
- 每个客户端保存的也都是整个完整的项目 (包含历史记录,更加安全)
工作机制
工作区——git add——> 暂存区——git commit——> 本地库
工作区:写代码;
暂存区:临时存储;
本地库:历史版本;
代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般称为 远程库。
局域网:GitLab
互联网:GitHub,Gitee码云
基础操作命令
初始化本地仓库:git init
查看本地库状态:git status
添加暂存区:git add 文件名 (git add . //将所有修改加入暂存区)
提交本地库:git commit -m “日志信息” 文件名
工作区的文件是git对象,不能看作是项目,要添加到暂存区,才能形成一个项目。
查看简易版本信息:git reflog (参看详细版本信息:git log)
版本穿梭:git reset –hard 版本号
分支
在版本控制中,要同时推进多个任务,对每个任务就可以单独创建一个分支。
使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己的分支时不会影响主线分支的运行。(分支底层是指针的引用)
分支操作:
创建分支:git branch 分支名
查看分支:git branch -v
切换分支:git checkout 分支名
将指定分支合并到当前分支上:git merge 分支名
指定分支要提交本地库,合并后,当前分支才会修改。
合并冲突:
当两个分支修改了同一个文件,并都提交到本地库,那么合并时,系统发现一个文件出现两个版本,不知道应该选择哪一个,就是发生了冲突。需要手动修改,选择。
添加远程仓库
git remote -v :查看当前所有远程地址别名
git remote add 别名 远程地址 :添加远程库地址和别名
推送本地分支到远程仓库 :git push 别名 分支
拉取远程库到本地库 : git pull 别名 分支 (自动提交到本地库)
克隆远程库到本地库:git clone 远程地址 (add + pull)
删除远程仓库: git remote rm 别名
修改远程仓库地址: git remote set-url 别名 <remote-url>
克隆结果:初始化本地仓库,创建别名
团队内协作
远程仓库的所有人需要在仓库的设置-成员设置中邀请其他团队成员加入,其他成员才能将本地分支推送到远程库
跨团队协作
团队外的人要先用fork获取远程库,修改后在界面的pull requests发送拉取请求。
SSH免密登录
生成 .ssh密钥目录: ssh-keygen -t rsa -C 账号邮箱
在.ssh目录下会有私钥id_rsa,公钥id_rsa.pub,将公钥添加到github上即可。
IDEA集成Git
环境准备:
先配置忽略文件 git.ignore,避免提交无用的文件,避免开发环境差异。
1 | //内容如下 |
然后在 .gitconfig 中添加 :
1 | [core] |
之后再idea设置的版本控制中设置git.exe路径。
初始化:
在工具栏的vcs中选择创建git仓库即可。
GitHub
搜索—高级搜索功能:http://github.com/search/advanced 或 搜索框中使用语法进行精确搜索
快捷面板:ctrl + K
仓库内对文件搜索: T键
文件内 行号跳转: L键
查看文件改动记录: B键
仓库详情页 打开 VSCode网页版: 。键d
打开 Gitpod : 在地址前缀前加上 gitpod.io/#/

hexo
前置操作已完成,现在 —— 初始化及部署博客:
新建文件夹 blog, 在blog 中使用git命令:
1 | hexo init //初始化本地博客 |
修改 _config.yml 文件,在文件最后,修改为:
1 | deploy: |
上传:
1 | npm install hexo-deployer-git --save |
每次预览:
1 | hexo clean |
每次上传:
1 | hexo clean |
主题:
1 git clone 主题地址(github地址)修改 _config.yml 文件中的 theme: 主题文件名
源文件上传git:
git push -u origin main
1
2
3
4
5
6
7 完整操作:
git add .
git commit -m "first commit"
git branch -M main
git remote add origin 地址
git push -u origin main
//推送到master分支不知为何,会出错恢复源文件:
1
2
3
4 git clone 地址
npm install
hexo g
hexo s/d //本地预览或上传
常用hexo命令
常见命令
1
2
3
4
5
6
7 hexo new "postName" #新建文章
hexo new page "pageName" #新建页面
hexo generate #生成静态页面至public目录
hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server)
hexo deploy #部署到GitHub
hexo help # 查看帮助
hexo version #查看Hexo的版本缩写:
1
2
3
4 hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy组合命令:
1
2 hexo s -g #生成并本地预览
hexo d -g #生成并上传a
hexo-butterfly
扉页
- page front-matter 用于页面的配置
| 写法 | 解释 |
|---|---|
| title | 页面标题(必须) |
| date | 创建日期(必须) |
| type | 标签类型(标签,分类,友情链接三个页面必须配置) |
| updated | 页面更新日期 |
| description | 页面描述 |
| keywords | 页面关键字 |
| comments | 显示页面评论模块(默认true) |
| top_img | 页面顶部图片 |
| mathjax | |
| katex | |
| aside | 显示侧边栏(默认true) |
| aplayer | 在需要的页面加载aplayer的js和css |
| highlight_shrink | 代码框是否展开(默认根据配置文件) |
- post front-matter 文章页的扉页 ,用于文章页的配置
| 写法 | 解释 |
|---|---|
| title | 页面标题(必须) |
| date | 创建日期(必须) |
| updated | 页面更新日期 |
| tags | 文章标签 |
| categories | 文章分类 |
| keywords | 文章关键字 |
| description | 页面描述 |
| keywords | 页面关键字 |
| comments | 显示页面评论模块(默认true) |
| top_img | 页面顶部图片 |
| cover | 文章封面主图,可设 false/图地址/留空 |
| toc | 显示文章toc(默认为配置中的enable) |
| toc_number | 显示toc_number |
| toc_style_simple | 显示 toc 简洁模式 |
| copyright_author | 文章版权 作者 |
| copyright_author_herf | 文章版权 作者的链接 |
| copyright_url | 文章版权 文章的链接 |
| copyright_info | 文章版权 的版权声明 |
| mathjax | |
| katex | |
| aside | 显示侧边栏(默认true) |
| aplayer | 在需要的页面加载aplayer的js和css |
| highlight_shrink | 代码框是否展开(默认根据配置文件) |
顶部图
主页的图——index_img:
默认是文章配图——default_top_img:
归档页的主图—— archive_img
标签页的主图——tag_img
标签页的文章配图——tag_per_img
分类页的主图——category_img
分类页的文章配图——category_per_img
其他页面和文章页的top_img: 可以到文章的扉页 配置——top_img: xxx
文章置顶
- 在文章的扉页 添加 sticky:1 ,数字越大,置顶的优先级越大;
文章封面
在文章的扉页 添加 cover: 图片地址
可以在配置文件里配置默认图片, default_cover: xxx
如果要配置多张图片,随机选择一张作为cover,写法为:
1
2
3
4default_cover:
- 图片地址
- 图片地址
- 图片地址
文章版权
1 | post_copyright: |
侧边栏
在配置文件
1 | aside: |
文章打赏
在配置文件
1 | reward: |
TOC
显示目录,在配置文件
1 | toc: |
相关文章推荐
根据tags的比重来推荐,在配置文件
1 | related_post: |
文章锚点
开启后,在文章中滚动时,文章链接会根据标题进行变化(每替换一次,都会留下一次历史记录,锚点过多,可能导致历史记录过多)
配置文件:
1 | anchor: true |
头像
配置文件
1 | # Avatar (頭像) |
网站图标
配置文件
1 | favicon: |
图片描述
在图片下显示描述信息,优先 title属性,然后是 alt属性
配置文件:
1 | photofigcaption: true |
复制
配置文件:
1 | # copy settings |
脚页自定义文本
custom_text: 支持HTML
1 | custom_text: Hi, welcome to my <a href="https://butterfly.js.org/">blog</a>! |
插入自定义代码
修改配置文件:
1 | # 如; |
网站背景
默认白色
配置文件:
1 | # Website Background (設置網站背景) |
网站副标题
配置文件:
1 | # 主页subtitle |
备案信息
在页脚的custom_text也可以写代码,在此写下备案跳转链接。
1 | footer: |
引擎收录
url持久化
hexo默认生成的文章地址路径是: 网站名/年/月/日/文章名,它的url结构超过3层,较深,对搜索爬虫不友好。
安装:npm install hexo-abbrlink –save
修改配置:
1 | permalink: archives/:abbrlink.html |
添加nofollow标签:
安装:npm install hexo-filter-nofollow –save
添加配置:
1 | nofollow: |
标签外挂
(可能有移植问题,不是很推荐)
Gallery相册图库
写法:
- name:图库名字
- description:图库描述
- link:连接到对应相册的地址
- img-url:图库封面的地址
1 | <div class="gallery-group-main"> |
Gallery相册
这是新的Gallery相册,会自动根据图片进行排版,书写也更方便,与markdown格式一样;
1 | {% gallery %} |
tag-hide
可以将 一些内容隐藏起来,并提供按钮让用户点击显示;
注:内容不要用 h1~h6标题,会让目录有一些异常;
inline —— 只能隐藏文字
1 | {% hideInline content,display,bg,color %} |
content: 文本内容
display: 按钮显示的文字(可选)
bg: 按钮的背景颜色(可选)
color: 按钮文字的颜色(可选)
注:content部分不能用英文逗号,可用 ‚ 代替
block —— 隐藏多个内容
1 | {% hideBlock display,bg,color %} |
- content: 文本内容
- display: 按钮显示的文字(可选)
- bg: 按钮的背景颜色(可选)
- color: 按钮文字的颜色(可选)
toggle —— 隐藏大量内容
1 | {% hideToggle display,bg,color %} |