一个行业的跌宕起伏

0%

关于git Bash的命令行[笔记]

gitbush的学习笔记整理。也可以参考:https://baoyuzhang.github.io/ 里面有个(一)(二)(三)。此处的命令是根据里面的学习形成的学习记录。

(一)基础部分

命令格式 含义内容
cd “” 文件夹名字
hexo init 初始化当前文件夹为版本库
hexo g 即生成静态文件,会更新到 public 文件夹中
hexo s 开启内部预览
hexo d 布署到远端服务器
CTRL+C 退出当前进程
pwd 显示当前目标
ping github.com 获取IP地址

(二) 库内的文件操作版本回退

命令格式 操作
git add file 将file添加到暂存区
git commit -m “提交说明” 将暂存区中所有文件提交到仓库
git status 查看当前目录中是否有文件未提交
git diff file 查看file文件修改内容,注意只能是库内的文件
git log 查看历史记录
git log –pretty=oneline 查看历史记录(简洁版)
git reset –hard HEAD^ 退回到上个版本
git reset –hard HEAD^^ 退回到上上个版本
git reset –hard HEAD~100 退回到前100个版本
git reflog 获取全部版本号,可以根据版本号来回退
git reset –hard 版本号 退回到版本号的版本
cat file 查看文件内容

备注:版本是针对库的。并且认提交动作,而不认修改动作。如果修改了N次并提交,那只认一次,也就是会只有一个版本。

(三)文件/章的增删改撤恢复

1
git checkout  -- file

#丢弃file文件在工作区的修改(工作区-暂存区-版本库,回到上一阶段的修改)a.工作区修改后没有add到暂存区:回到和版本库一样的状态;b.工作区修改后add到暂存区后又有修改:回到添加暂存区后的状态。也就是优先级为:暂存区 > 版本库 。文件恢复 | 如果没有–,则为创建分支命令好

1
rm file

删除工作区中的file文件
a.想要删除版本库中的file文件:直接commit掉;
b.想要从版本库中删除file文件:git checkout – file

要删除版本库中的文件,可以先在工作区删掉git checkout再git commit提交;a中者直接

1
touch file   #新建文件,在文件夹下面新建一个文件
1
hexo new "文章名"  #会新建一篇文章,带有既定格式的,而非单纯的建一个文件.此命令只要主库-_posts中生成新文件

(四) 关于分支

1
2
git branch  #创建分支
git checkout #切换分支

(五)关于主题的

1
2
#更新next主题
git clone https://github.com/theme-next/hexo-theme-next themes/next-reloaded

(六)升级HEXO包

1
2
3
4
5
6
7
8
9
10
npm install -g npm-check   #下载
npm-check #检查版本
npm install -g npm-upgrade #更新
npm update <name> -g #更新全局包
npm update <name> --save #更新生产环境依赖包
save参数:npm install X –save:
会把X包安装到node_modules目录中
会在package.json的dependencies属性下添加X
之后运行npm install命令时,会自动安装X到node_modules目录中
如果不加save参数的话,之后把X包安装到node_modules目录中,不会添加到 dependencies文件中。再查看hexo文件夹下面的dependencies文件,可以看到hexo的版本已经更新了。

(七)页面小工具

1
2
< !-- more -->
#放在文中合适的地方,可以截断页面

设置文章不在首页显示(我用的是新版next主题)

1、在文章头新建一个变量:notshow。也可以在post模板中改,以后可以自动生成

1
2
title: 这是文章标题
notshow: true

2、在主题文件夹下,layout\index.swig,定位到post代码块:
增加一个if条件,有批注的两行是我修改的

1
2
3
4
5
6
7
<div class="posts-expand">
{%- for post in page.posts.toArray() %}
{% if post.notshow != true %} #增加了一个条件,判断是否在首页显示
{{ partial('_macro/post.swig', {post: post, is_index: true}) }}
{% endif %} #结束if
{%- endfor %}
</div>

配置简写命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
git config --global -e
[alias]
st = status
co = checkout
br = branch
mg = merge
ci = commit
md = commit --amend
dt = difftool
mt = mergetool
last = log -1 HEAD
cf = config
line = log --oneline
latest = for-each-ref --sort=-committerdate --format='%(committerdate:short) %(refname:short) [%(committername)]'

ls = log --pretty=format:\"%C(yellow)%h %C(blue)%ad %C(red)%d %C(reset)%s %C(green)[%cn]\" --decorate --date=short
hist = log --pretty=format:\"%C(yellow)%h %C(red)%d %C(reset)%s %C(green)[%an] %C(blue)%ad\" --topo-order --graph --date=short
type = cat-file -t
dump = cat-file -p