知识管理--个人博客-1、Hexo博客搭建方法和问题记录
1. 搭建过程todo 2. 修改记录todo 3. 问题记录3.1. 博客内文章跳转一3.1.1. 安装依赖1npm install hexo-backlink 3.1.2. Obsidian配置Obsidian里本身支持内部链接,如果需要在Hexo上生效,需要做以下改动 3.1.3. 避坑指南但是这里有个坑,文章名称中不能有空格,否则会报文章找不到的错误,这个插件不是很完善,所以还是建议使用下面的方法二。但是在obsidian中方法二就无法使用obsidian的内部链接了。最终折中办法是文件名称中去掉空格,标题中加上空格,然后在obsidian内部链接中加别名设置,如下: 1{% post_link 000-工具箱专题/gitconfig(global、system、local) 'git config(global、system、local)' %} 3.2. 博客内文章跳转二如果有空格,加上双引号就解决了 1{% post_link "git config(global、system、local)" ...
Git进阶 — 5、Git-后悔药-重写历史-git commit--amend
修改最近一次的提交,可以是提交备注信息,也可以是文件内容。会生成一个新的commit替换掉最新的一条commit 发散: 在rebase的交互式操作选择e(edit)时也存在这个命令的使用,这里使用时,替换的是选中的commit 参考https://www.qikegu.com/docs/4399
Git进阶 — 6、Git找回丢失代码 git fsck --lost-found
1. 查找丢失数据1git fsck [--tags] [--root] [--unreachable] [--cache] [--no-reflogs] [--[no-]full] [--strict] [--verbose] [--lost-found] [--[no-]dangling] [--[no-]progress] [--connectivity-only] [--[no-]name-objects] [<object>*] git fsck –lost-found 是一个写出文件动作,执行该命令前不会有以下 lost-found目录。执行之后会根据情况将悬挂对象写入.git/lost-found/commit/或.git/lost-found/other/ 具体取决于类型。如果对象是blob,则将内容写入文件中,而不是其对象名称。 1.1. commit目录丢失的commit信息,丢失的stash信息 1.2. other目录add但未commit的,请看示例add但未commit恢复方法 2. ...
Git原理 — 1、Git目录结构及Git三棵树(工作区、暂存区、版本库)
1. Git目录结构* hooks (钩子函数的一个库 类似于回调函数) * info (包含一个全局性的排除文件) * objects (目录存储所有数据内容) * refs (目录存储指向数据(分支)的提交对象的指针) * config (文件包含项目特有的配置选项) * description (显示对仓库的描述信息) * HEAD (文件目前被检出的分支) * logs (日志信息) * index (文件保存暂存区的信息) 2. 三个区的位置我们先来理解下Git 工作区、暂存区和版本库概念,这对以后我们学习Git命令会有非常大的帮助。 2.1. 工作区一般我们执行git init或者git clone命令,就能把一个目录初始化成Git本地版本库。 而这个目录就是该Git本地版本库的工作区。 如下图:gittest目录就是一个本地仓库。 具体结构如下图: 2.2. 暂存区 暂存区从字面上去理解就是用来暂时保存文件的地方,实际上它的作用和它的名字是一致的,暂存区可以起到过渡的作用,当我们写代码修改了一些文件的时候,可以把修改的代码提交到暂存区保存,然后接着写代码,接着再提 ...
Git原理 — 2、Git对象和存储原理-Blob对象
Git 是一套内容寻址文件系统。什么意思呢? 就是Git的核心部分是一个简单的键值数据库(key-value data store)。你可以向该数据库插入任意类型的内容,并会返回一个键值,通过该键值可以在任何时候再取出该内容。 1. Git对象的存放目录Git中对象都保存在本地版本库的.git/objects 目录(即:对象数据库)中。 首先初使化一个Git仓库: 123456789101112131415161718192021222324252627282930313233343536373839➜ ~ mkdir gitObject ➜ ~ cd gitObject ➜ gitObject git init . 已初始化空的 Git 仓库于 /Users/taylor/gitObject/.git/➜ gitObject git:(master) cd .git ➜ .git git:(master) lltotal 24-rw-r--r-- 1 taylor staff 23B 9 15 ...
Git基础 — 3、Git基本命令及介绍
#flashcardsGit基础 — 3、Git基本命令及介绍::不断费曼,坚持不懈! 1. Git的基本操作流程 如果是全新项目,使用命令git init repo_name初始化一个本地版本库(每个版本库仅需要执行一次),后续推送到远程仓库。 大多数情况是非全新项目,需要使用命令git clont xxx将中央版本库内容克隆到本地版本库,每个客户机仅需要执行一次。该命令会在执行命令的所在目录下自动创建本地版本库。 使用命令git add xxx添加指定文件到版本控制管理(这一步只是添加到Git暂存区)。 使用命令git commit -m "xxx"将添加、修改等操作,提交到本地版本库(将暂存区的内容提交到本地版本库)。如果远程仓库的内容被别人修改了,需要先同步远程的内容,直接git pull就可以更新本地的文件,然后再提交。再这过程中可能需要解决冲突。在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。 使用命令git push将本地版本库中的修改内容“推送”到中央版本库,客户机需要在一阶段性工作完成之后,或在某些时间点(下班,周五),将修改过的内容 ...
Git进阶 — 2、Git-后悔药-回退撤销-revert
1. revert作用Revert撤销一个提交的同时会创建一个新的提交。这是一个安全的方法,因为它不会重写提交历史。比如,下面的命令会找出倒数第二个提交,然后创建一个新的提交来撤销这些更改,然后把这个提交加入项目中。 相比git reset,它不会改变现在的提交历史。因此,git revert 可以用在公共分支上,git reset 应该用在私有分支上。 你也可以把git revert 当作撤销已经提交的更改,而git reset HEAD 用来撤销没有提交的更改。 就像git checkout 一样,git revert 也有可能会重写文件。所以,但与git checkout不同的是,Git会在你执行 revert 之前要求你提交或者缓存你工作目录中的更改。否则执行失败 2. work directory 安全的1234567891011➜ recovery git:(master) ✗ git revert HEADerror: 您对下列文件的本地修改将被合并操作覆盖:file.txt请在合并前提交或贮藏您的修改。正在终止fatal: 还原失败 没有文件模式 123➜ rec ...
Git进阶 — 3、Git-后悔药-回退撤销-checkout
1. commit模式 注意 commit模式下git checkout,因为只切换HEAD位置,不会影响索引区与工作目录。所以请调用git status查看当前git三树状态。如果索引树或工作目录有修改,git是会终止操作。 1.1. 查看当前分支的HEAD信息1git checkout [HEAD] Your branch is up to date with ‘origin/checkTag’. 1.2. 切换HEAD到某个分支上git checkout <branch_name> 操作HEAD切换到某个分支,HEAD默认是目标分支的最后一次提交快照 1.3. 新建一个分支,切换HEAD该分支上git checkout -b <branch_name> [<remote_name/branch_name>] remote_name/branch_name (创建跟踪分支) 如果想拉取一个,在本地分支没有跟踪分支的远程分支,可以先执行git fetch然后再 git checkout -b Swit ...
Git进阶 — 4、Git-后悔药-回退撤销-restore
1. 万能演示代码1234567891011121314151617181920212223242526272829cd ~rm -rf recoverymkdir recovery;cd recoverygit init .echo "hello v1" > file.txtgit statusgit add .git commit -m "v1"echo "hello v2" >> file.txtgit add .git commit -m "v2"echo "hello v3" >> file.txtgit add .git commit -m "v3"git log 修改file.txt然后添加到暂存区,然后再次修改file.txt,让修改保留在工作区 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484 ...
Git进阶 — 1、Git-后悔药-回退撤销-reset
1. Git三棵树 语法commit模式1git reset (<branch_name>|HEAD|<tree-ish>|<tag_name>) [--mixed | --soft | --hard | --merge | --keep] file模式1git reset (<branch_name>|HEAD|<tree-ish>|<tag_name>) [--] <file_path> 2. 正向流程git的核心工作就是管理这三棵树。git add就是把你工作目录(Working Directory)的修改提交到暂存区(Index),git commit就是把暂存区的内容同步到仓库里作为一个快照,并移动HEAD指向新快照; 三棵树从右向左看 ⬅️提交历史从左到右看➡️ 2.1. git init 让我们来可视化这个过程:假设进入到一个新目录,其中有一个文件,称其为该文件的 v1 版本,将它标记为蓝色,现在运行 git init,这会创建一个 Git 仓库,其中的 HEAD 引用指向未创 ...

