本次调整(踩坑日记)

1、调整了下整体UI
2、优化了代码块样式,但渲染有点子问题,没有识别出语言而生成相应的HTML,弄了好久,没弄对…..
3、添加音乐:

尝试aplayer插件: No ~ 插件的生成代码必须写在MD文件里通过Hexo进行渲染生成,而此主题页面是通过.swig渲染,不会走hexo,如之奈何,(写到这里,好像有点思路,可以专门把播放器写到md文件里,引进来hexo就会渲染了); 随后直接将插件的静态文件引入到页面,编写Html生成播放器,功能也挺全乎的,但是!!,页面一条转就会重新加载,严重影响使用,看博友使用了pjax: 主要是利用pushState来改变浏览器URL,利用ajax来请求页面,以实现不刷新浏览器更新页面,这样就能保证正在播放音乐中的播放器不受影响; 我也加上了,没搞明白原理,并且没有效果。。。。。。 暂时放弃了,下次再加把,然后把加的全删了(生气了/////

4、本文只搭了内容框架,还没写,被上面两个功能折磨够呛,眼看着也已经到了下班时间,周五了,我还是撤了把,坐不住了

一些概念

  • 暂存区
    git add之后会存在此区域, 用来与本地仓库之间做一个缓存, 帮助Git在做diff时提高查找性能
  • 本地分支
    git commit 之后会存在此区域, .git目录下的refs/heads目录, 里面村的就是本地的分支代码信息.
  • 存储区
    stash是本地的存储区,
    场景: 已经改了本地的代码,但是突然有个人来问你另一个分支的问题,同事这个时候你代码搞了一半,又不想提交到Git仓库中,那么就可以考虑git stash save '临时存一下',之后再git stash pop

有点不建议使用这个,确实得小心一点, 哪天stash了, 但是忘记恢复了, 哭哭可没人安慰喔


一些选项

-d –delete:删除
-D –delete –force的快捷键
-f –force:强制
-m –move:移动或重命名
-M –move –force的快捷键
-r –remote:远程
-a –all:所有


Git clone & init

不多说了昂,

git init
git config <--global> user.name xx
git config <--global> user.email xx@email.com
git clone <远程网址>
git clone <远程网址> <本地目录>
git clone <远程网址> -b <分支名称> <本地目录>

Git stash (存储区

临时存一下不想被提交的代码, 数据存储在 .git 文件夹下的 refs/stash 里

git stash save 'xxx': 储存变更

git stash list: 查看储存区所有提交列表

git stash pop: 弹出并应用最近的一次储存区的代码提交

git stash drop stash@{n}: 删除某次储存记录

git stash clear: 清楚所有 stash 信息

Git remote

git remote (-v) / (show)  : 显示远程仓库详细信息

git remote rm <仓库名称>   : 删除某个远程版本库关联

git remote add origin xxx.git  : 添加一个远程版本库关联

git push -u origin master 表示把当前分支和远端仓库的 master 分支关联起来

Git branch & checkout

git branch:查看本地所有分支信息

git branch -r:查看远程仓库所有分支
git branch -a:查看本地和远程仓库所有分支

git checkout xxx : 切换至新的分支

git branch xxx: 基于当前分支创建新的分支,但不切换
git checkout -b newbranch :以当前分支为基准创建并切换到指定新分支

git branch -d <分支名>: 删除一个分支,前提是该分支没有未合并的变动。
git branch -D <分支名>: 强制删除一个分支,不管有没有未合并变化。

Git add

git add [file1] [file2]: 添加一个或多个文件到暂存区

git add .:把当前目录下得所有文件改动都添加到暂存区

git add -A:把当前仓库内所有文件改动都添加到暂存区

Git commit

git commit -m xxxx: 不多说了啊
git commit -a -m xxxx : 连带着没有add的文件一起提交
git commit -am xxxx

git commit -m xxx --no-verify :取消代码预检查,直接交(不推荐昂,即加了pre-commit,就要从一开始好好按规矩办事,跳过一次,次次跳,直接摆烂?

git commit --amend 
- 场景: 
    - 你上次提交的commit信息有误
    - 你上次提交的文件没改完或没改对
    - 不想生成太多commit记录 ,可以交一次换一次, 这样最后合代码的时候就非常优雅
- 步骤:
  前面已经commit了;
  重新将想改的文件改好,然后git add;
  输入git commit --amend;
  终端显示上次commit的信息, 光标移动至commit的信息并按下"i"进入编辑;
  编辑完成后(覆盖上次的commit信息);
  按下Esc退出编辑, 并输入 ":wq" 回车退出并保存修改,完成提交.

Git rm

 已经把私有文件提交至远程, 这时候.gitignore再添加是没用的
 所以需要先删除远程的文件, 再.gitignore

git rm xxx: xxx从git仓库中删除了,配合 .gitignore 就能保证xxx文件变更都不会提交到远程。

git rm -r dist:要删除的是一个目录,要加上 -r 。

Git push

git push --set-upstream origin branch1: 推送分支并建立关联关系

Git pull & fetch

没有冒号就是当前分支,没有中括号就是更新仓库
git pull [origin 远程分支:本地分支]: 拉取最新版本合并到本地, 会自动合并,但如果你本地有修改就麻烦了啊,冲突太烦人了
所以!!!, 没事就pull一下括弧前提是工作区/暂存区干干净净
git fetch [origin 远程分支:本地分支]: 拉取最新版本至本地,不会自动合并,需要你手动git merge origin/xxxx一下

Git merge

git merge origin/xxxx
git merge xxxx

Git log

Git reset

git reset [--soft | --mixed | --hard] [HEAD]
–soft: 重置你最新一次提交版本,不会修改你的暂存区和工作区。
–mixed: 默认参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
–hard: 重置所有提交到上一个版本,并且修改你的工作区,会彻底回到上一个提交版本,在代码中看不到当前提交的代码,也就是你的工作区改动也被干掉了。

  • 撤销 add
    git reset
    git reset HEAD
  • 撤销 commit
    git reset HEAD^
    git reset HEAD^^^^
    git reset HEAD~n
  • 回滚
    git reset --hard commitId

Git log & reflog

Git revert

Git cherrt-pick

Git tag

  • 轻量标签
  • 附注标签

Git SubMoudule