diff --git "a/2024/01/09/GitHub desktop\345\237\272\346\234\254\347\224\250\346\263\225/index.html" "b/2024/01/09/GitHub desktop\345\237\272\346\234\254\347\224\250\346\263\225/index.html" index 0fecb64..0507011 100644 --- "a/2024/01/09/GitHub desktop\345\237\272\346\234\254\347\224\250\346\263\225/index.html" +++ "b/2024/01/09/GitHub desktop\345\237\272\346\234\254\347\224\250\346\263\225/index.html" @@ -1 +1,14 @@ -GitHub desktop 基本用法 - 马锦的博客

GitHub desktop 基本用法

一,仓库

1.1新建仓库

1,点击File,再点击new repository。

2,通过新建仓库可以实时的在GitHub和GitHub desktop中创建一个空的仓库,你可以对新建的仓库进行各项设置。

包括仓库名字,仓库描述,仓库本地位置,自动创建readme文件,忽略文件的选择,以及开源许可证的选择。这里介绍后两个的详细内容:

git ignore可以选择忽略文件,如果你有些文件并不想上传,那你就可以将其设置。

以下是一个示例 .gitignore 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13

# Ignore node_modules folder 忽略文件夹
node_modules/

# Ignore build artifacts 忽略目录
build/
dist/
*.log

# Ignore configuration files 忽略文件
.env
config.js

这将忽略 node_modules 文件夹、build 和 dist 目录、所有以 .log 结尾的文件以及 .env 和 config.js 文件。

license为许可证设置,设置许可证的目的是为了让别人可以合理合法地使用与修改我们的代码,有多种许可证可以选择,它们具有不同的权限设置。

总结一下,MIT 最自由,简直就是没有任何限制,任何人都可以售卖我的软件,甚至可以用我的名字促销。BSD 和 Apache 协议也很自由,跟 MIT 的区别分别是不允许用作者本人名义促销和保护作者版权。GPL 可以说最霸道,对代码的修改部分也必须是 GPL 的,同时基于 GPL 代码而开发的代码也必须按照 GPL 发布,而 MPL ,也就是 Mozilla Public License 就温和一些,如果后续开发的代码中添加了新文件,同时新文件中也没有用到原来的代码,那么新文件可以不必继续沿用 MPL 。【如何为自己的 Github 项目选择开源许可证? - 知乎 (zhihu.com)

3,当你完成了前两步,你还需要点击Publish repository来上传仓库,并设置仓库是否公开(这很重要!)

1.2添加本地仓库

1,点击File,再点击Ddd local repository。

2,输入本地文件地址,但如果你的文件未初始化为git仓库,则需要点击create a repository来新建一个仓库(作用是将选定的文件初始化为git仓库)

3,点击后则与上面一样,进行各种参数填充。

1.3克隆仓库

1,点击File,再点击Clone repository。

2,选择需要克隆的仓库,如果你是要克隆别人的仓库,可以选择URL

1.4编辑仓库

  • 点击open in ········,如果这个编辑器不是你喜欢的,你可以点击绿色的Options进行编辑器的选择。

1.5删除仓库

  • 删除仓库并不会删除GitHub上的仓库,更多的作用是删除本地与GitHub的连接!

如果你想切断GitHub与本地库的连接,你可以执行以下操作:

  1. 删除本地库中的.git文件夹(这是一个隐藏文件夹,你需要启用显示隐藏文件夹选项)

  2. 如果你想从GitHub上删除该库,你可以在GitHub上进入该库,点击“Settings”,然后在“Danger Zone”中点击“Delete this repository”。

这里推荐使用GitHub desktop进行删除操作:

右击需要删除的仓库

在被删除仓库页面,点击Repository,再点击Remove

你会看到如下页面,勾选下方选项框的话,会将你的仓库从计算机硬盘中移除;如果不勾选,只会在GitHub desktop(GitHub)上移除。

二,版本控制

2.1更新版本

1,GitHub desktop会自动识别仓库里代码的变动,并且你可选择应用哪些改变。如果你改变了仓库链接的本地仓库文件,你可以在GitHub desktop的主页面上看到如下场景:

我在仓库中新建了‘版本更新.py’文件,并在其中写入了print(’dddd’)代码

2,可以看到左侧栏中出现了changes,你需要在左下角的summary中填入摘记(必填),还可以填入相关描述,填入后,你还需要点击Push origin上传:

3,这时你就可以在GitHub上看到你的仓库发生了变化:

2.2项目回滚

1,你可以在History里看到每一次的版本变化:

2,具体操作:

  • 点击History
  • 选择要回滚的版本
  • 右键选择Revert Changes in Commit
  • 确认回滚信息并提交

可以看到版本回到了最开始的样子。

三,分支管理

3.1新建分支

  • 点击Current brance
  • 点击New brance
  • 然后为你的分支命名即可
  • 在GitHub中查看分支

创建分支

3.2切换分支

点击即可

在GitHub desktop选择分支

在GitHub查看与选择分支

3.3合并分支

  1. 首先,在 GitHub Desktop 中打开你要合并的仓库。

  2. 点击左侧导航栏中的“分支”选项卡,找到你要合并的分支。

  3. 选择要合并的分支,右键点击该分支并选择“Merge into current branch”(合并到当前分支)选项。

  4. 确认合并操作,如果有冲突需要手动解决冲突。

  5. 点击“Commit merge”(提交合并)按钮。

  6. 最后点击“Push origin”(推送到远程仓库)按钮,将合并后的代码推送到远程仓库。

3.4删除分支

  • 右键删除即可

3.5比较分支

  • 在 GitHub Desktop 中打开你要合并的仓库。
  • 点击Compare to brance

  • 在左侧搜索需要对比的即可

3.6查看提交历史

  • 在想要查看的分支下点击Hitory

四,多人协作

  1. 创建GitHub仓库:首先,一个人(通常是项目的负责人)在GitHub上创建一个仓库,并将其与本地项目相关联。
  2. 邀请协作者:负责人可以通过在GitHub仓库的设置中添加协作者来邀请其他人加入项目。在协作者的GitHub帐户上,他们将收到邀请加入项目的通知。

在仓库设置里,点击Collabarators即可

  1. 克隆仓库:协作者使用GitHub Desktop克隆项目的仓库到本地。他们可以选择克隆到自己的计算机上的任意位置。
  2. 进行更改:每个协作者在本地进行代码更改或其他操作。他们可以使用GitHub Desktop的界面进行提交更改。
  3. 提交更改:协作者完成更改后,使用GitHub Desktop提交他们的更改到GitHub仓库。他们可以添加有关更改的说明和描述。
  4. 解决冲突:如果两个或多个协作者在相同的文件的相同行进行了更改,可能会出现冲突。在这种情况下,GitHub Desktop会提醒协作者,让他们解决冲突。协作者可以使用GitHub Desktop提供的冲突解决工具来处理冲突。
  5. 更新本地仓库:协作者可以通过点击GitHub Desktop中的”Pull”按钮来获取最新的更改。这将从GitHub仓库中拉取其他协作者提交的更改并合并到本地仓库。

  1. 推送更改:协作者在本地完成更改后,可以使用GitHub Desktop的”Push”按钮将更改推送到GitHub仓库。这将把他们的更改上传到仓库并使其他协作者可见。

通过这些步骤,多人可以使用GitHub Desktop进行协作开发,并实时共享和同步他们的更改。在整个过程中,GitHub Desktop提供了一个简单直观的界面,帮助协作者进行版本控制和协作。


GitHub desktop 基本用法
https://jimes.cn/2024/01/09/GitHub desktop基本用法/
作者
Jimes
发布于
2024年1月9日
许可协议
\ No newline at end of file +GitHub desktop 基本用法 - 马锦的博客

GitHub desktop 基本用法

一,仓库

1.1新建仓库

1,点击File,再点击new repository。

2,通过新建仓库可以实时的在GitHub和GitHub desktop中创建一个空的仓库,你可以对新建的仓库进行各项设置。

包括仓库名字,仓库描述,仓库本地位置,自动创建readme文件,忽略文件的选择,以及开源许可证的选择。这里介绍后两个的详细内容:

git ignore可以选择忽略文件,如果你有些文件并不想上传,那你就可以将其设置。

以下是一个示例 .gitignore 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13

# Ignore node_modules folder 忽略文件夹
node_modules/

# Ignore build artifacts 忽略目录
build/
dist/
*.log

# Ignore configuration files 忽略文件
.env
config.js

这将忽略 node_modules 文件夹、build 和 dist 目录、所有以 .log 结尾的文件以及 .env 和 config.js 文件。

license为许可证设置,设置许可证的目的是为了让别人可以合理合法地使用与修改我们的代码,有多种许可证可以选择,它们具有不同的权限设置。

总结一下,MIT 最自由,简直就是没有任何限制,任何人都可以售卖我的软件,甚至可以用我的名字促销。BSD 和 Apache 协议也很自由,跟 MIT 的区别分别是不允许用作者本人名义促销和保护作者版权。GPL 可以说最霸道,对代码的修改部分也必须是 GPL 的,同时基于 GPL 代码而开发的代码也必须按照 GPL 发布,而 MPL ,也就是 Mozilla Public License 就温和一些,如果后续开发的代码中添加了新文件,同时新文件中也没有用到原来的代码,那么新文件可以不必继续沿用 MPL 。【如何为自己的 Github 项目选择开源许可证? - 知乎 (zhihu.com)

3,当你完成了前两步,你还需要点击Publish repository来上传仓库,并设置仓库是否公开(这很重要!)

1.2添加本地仓库

1,点击File,再点击Ddd local repository。

2,输入本地文件地址,但如果你的文件未初始化为git仓库,则需要点击create a repository来新建一个仓库(作用是将选定的文件初始化为git仓库)

3,点击后则与上面一样,进行各种参数填充。

1.3克隆仓库

1,点击File,再点击Clone repository。

2,选择需要克隆的仓库,如果你是要克隆别人的仓库,可以选择URL

1.4编辑仓库

  • 点击open in ········,如果这个编辑器不是你喜欢的,你可以点击绿色的Options进行编辑器的选择。

1.5删除仓库

  • 删除仓库并不会删除GitHub上的仓库,更多的作用是删除本地与GitHub的连接!

如果你想切断GitHub与本地库的连接,你可以执行以下操作:

  1. 删除本地库中的.git文件夹(这是一个隐藏文件夹,你需要启用显示隐藏文件夹选项)

  2. 如果你想从GitHub上删除该库,你可以在GitHub上进入该库,点击“Settings”,然后在“Danger Zone”中点击“Delete this repository”。

这里推荐使用GitHub desktop进行删除操作:

右击需要删除的仓库

在被删除仓库页面,点击Repository,再点击Remove

你会看到如下页面,勾选下方选项框的话,会将你的仓库从计算机硬盘中移除;如果不勾选,只会在GitHub desktop(GitHub)上移除。

二,版本控制

2.1更新版本

1,GitHub desktop会自动识别仓库里代码的变动,并且你可选择应用哪些改变。如果你改变了仓库链接的本地仓库文件,你可以在GitHub desktop的主页面上看到如下场景:

我在仓库中新建了‘版本更新.py’文件,并在其中写入了print(’dddd’)代码

2,可以看到左侧栏中出现了changes,你需要在左下角的summary中填入摘记(必填),还可以填入相关描述,填入后,你还需要点击Push origin上传:

3,这时你就可以在GitHub上看到你的仓库发生了变化:

2.2项目回滚

1,你可以在History里看到每一次的版本变化:

2,具体操作:

  • 点击History
  • 选择要回滚的版本
  • 右键选择Revert Changes in Commit
  • 确认回滚信息并提交

可以看到版本回到了最开始的样子。

三,分支管理

3.1新建分支

  • 点击Current brance
  • 点击New brance
  • 然后为你的分支命名即可
  • 在GitHub中查看分支

创建分支

3.2切换分支

点击即可

在GitHub desktop选择分支

在GitHub查看与选择分支

3.3合并分支

  1. 首先,在 GitHub Desktop 中打开你要合并的仓库。

  2. 点击左侧导航栏中的“分支”选项卡,找到你要合并的分支。

  3. 选择要合并的分支,右键点击该分支并选择“Merge into current branch”(合并到当前分支)选项。

  4. 确认合并操作,如果有冲突需要手动解决冲突。

  5. 点击“Commit merge”(提交合并)按钮。

  6. 最后点击“Push origin”(推送到远程仓库)按钮,将合并后的代码推送到远程仓库。

3.4删除分支

  • 右键删除即可

3.5比较分支

  • 在 GitHub Desktop 中打开你要合并的仓库。
  • 点击Compare to brance

  • 在左侧搜索需要对比的即可

3.6查看提交历史

  • 在想要查看的分支下点击Hitory

四,多人协作

  1. 创建GitHub仓库:首先,一个人(通常是项目的负责人)在GitHub上创建一个仓库,并将其与本地项目相关联。
  2. 邀请协作者:负责人可以通过在GitHub仓库的设置中添加协作者来邀请其他人加入项目。在协作者的GitHub帐户上,他们将收到邀请加入项目的通知。

在仓库设置里,点击Collabarators即可

  1. 克隆仓库:协作者使用GitHub Desktop克隆项目的仓库到本地。他们可以选择克隆到自己的计算机上的任意位置。
  2. 进行更改:每个协作者在本地进行代码更改或其他操作。他们可以使用GitHub Desktop的界面进行提交更改。
  3. 提交更改:协作者完成更改后,使用GitHub Desktop提交他们的更改到GitHub仓库。他们可以添加有关更改的说明和描述。
  4. 解决冲突:如果两个或多个协作者在相同的文件的相同行进行了更改,可能会出现冲突。在这种情况下,GitHub Desktop会提醒协作者,让他们解决冲突。协作者可以使用GitHub Desktop提供的冲突解决工具来处理冲突。
  5. 更新本地仓库:协作者可以通过点击GitHub Desktop中的”Pull”按钮来获取最新的更改。这将从GitHub仓库中拉取其他协作者提交的更改并合并到本地仓库。

  1. 推送更改:协作者在本地完成更改后,可以使用GitHub Desktop的”Push”按钮将更改推送到GitHub仓库。这将把他们的更改上传到仓库并使其他协作者可见。

通过这些步骤,多人可以使用GitHub Desktop进行协作开发,并实时共享和同步他们的更改。在整个过程中,GitHub Desktop提供了一个简单直观的界面,帮助协作者进行版本控制和协作。


GitHub desktop 基本用法
https://jimes.cn/2024/01/09/GitHub desktop基本用法/
作者
Jimes
发布于
2024年1月9日
许可协议
+ + \ No newline at end of file diff --git "a/2024/01/10/\347\256\227\346\263\225\345\255\246\344\271\240\345\257\274\350\210\252/index.html" "b/2024/01/10/\347\256\227\346\263\225\345\255\246\344\271\240\345\257\274\350\210\252/index.html" index 1885ae9..826b3d3 100644 --- "a/2024/01/10/\347\256\227\346\263\225\345\255\246\344\271\240\345\257\274\350\210\252/index.html" +++ "b/2024/01/10/\347\256\227\346\263\225\345\255\246\344\271\240\345\257\274\350\210\252/index.html" @@ -1 +1,14 @@ -算法学习导航 - 马锦的博客

算法学习导航

1,机器学习算法python实现

GitHub项目,讲解了机器学习算法的数学原理与python实现,做笔记必备。

2,Hello算法

数据结构类的算法的多方式实现,有c,python,c++等等,同时配备了可视化界面,形象讲解算法的原理与区别。

3,可视化数据结构与算法

一个单纯模拟数据结构算法的网站。

4,菜鸟教程

学计算机必备,各种语言与第三方库的讲解以及框架,数不胜数!

5,神经网络与深度学习

邱锡鹏教授出版,详细功能见网址上级GitHub仓库,具有以下特点:

系统性:系统地整理了神经网络和深度学习的知识体系。鉴于深度学习涉及的知识点较多,本书从机器学习的基本概念、神经网络模型以及概率图模型三个层面来串联深度学习所涉及的知识点,使读者对深度学习技术的理解更具系统性、条理性和全面性。
可读性:本书在编排上由浅入深,在语言表达上力求通俗易懂,并通过增加图例、示例以及必要的数学推导来理解抽象的概念。同时,附录简要介绍了本书所涉及的必要数学知识,便于读者查用。
实践性:本书在网站上配套了针对每章知识点的编程练习,使得读者在学习过程中可以将理论和实践密切结合,加深对知识点的理解,并具备分析问题和解决问题的能力。


算法学习导航
https://jimes.cn/2024/01/10/算法学习导航/
作者
Jimes
发布于
2024年1月10日
许可协议
\ No newline at end of file +算法学习导航 - 马锦的博客

算法学习导航

1,机器学习算法python实现

GitHub项目,讲解了机器学习算法的数学原理与python实现,做笔记必备。

2,Hello算法

数据结构类的算法的多方式实现,有c,python,c++等等,同时配备了可视化界面,形象讲解算法的原理与区别。

3,可视化数据结构与算法

一个单纯模拟数据结构算法的网站。

4,菜鸟教程

学计算机必备,各种语言与第三方库的讲解以及框架,数不胜数!

5,神经网络与深度学习

邱锡鹏教授出版,详细功能见网址上级GitHub仓库,具有以下特点:

系统性:系统地整理了神经网络和深度学习的知识体系。鉴于深度学习涉及的知识点较多,本书从机器学习的基本概念、神经网络模型以及概率图模型三个层面来串联深度学习所涉及的知识点,使读者对深度学习技术的理解更具系统性、条理性和全面性。
可读性:本书在编排上由浅入深,在语言表达上力求通俗易懂,并通过增加图例、示例以及必要的数学推导来理解抽象的概念。同时,附录简要介绍了本书所涉及的必要数学知识,便于读者查用。
实践性:本书在网站上配套了针对每章知识点的编程练习,使得读者在学习过程中可以将理论和实践密切结合,加深对知识点的理解,并具备分析问题和解决问题的能力。


算法学习导航
https://jimes.cn/2024/01/10/算法学习导航/
作者
Jimes
发布于
2024年1月10日
许可协议
+ + \ No newline at end of file diff --git "a/2024/01/12/python\347\250\213\345\272\217\345\270\246\345\233\276\347\211\207\347\255\211\350\265\204\346\272\220\346\211\223\345\214\205/index.html" "b/2024/01/12/python\347\250\213\345\272\217\345\270\246\345\233\276\347\211\207\347\255\211\350\265\204\346\272\220\346\211\223\345\214\205/index.html" index 9fa0f9c..60abdd8 100644 --- "a/2024/01/12/python\347\250\213\345\272\217\345\270\246\345\233\276\347\211\207\347\255\211\350\265\204\346\272\220\346\211\223\345\214\205/index.html" +++ "b/2024/01/12/python\347\250\213\345\272\217\345\270\246\345\233\276\347\211\207\347\255\211\350\265\204\346\272\220\346\211\223\345\214\205/index.html" @@ -1 +1,14 @@ -python程序带图片等资源打包 - 马锦的博客

python程序带图片等资源打包

1
2
3
#在打包时,都需要将终端运行地址切换到要打包文件的父目录下
#在终端中运行以下代码
cd 父目录地址

1,常规打包

1
2
3
4
5
Pyinstaller -F py_word.py     #打包成单独exe,在文件夹dist中的单独文件

Pyinstaller -F -w py_word.py  #不带控制台的打包,不建议,会导致静默运行,只能从运行管理器中找到并停止

Pyinstaller -F -w -i chengzi.ico py_word.py  #打包指定exe图标打包

如果打包过大,可以使用anaconda创建虚拟环境只下载需要的第三方库。

2,带资源打包

2.1 首先解决的问题:打包后代码里资源的地址会因在不同环境下运行而不同。

首先需要将图片放到代码同级文件夹内,同时更新代码内的图片地址,这样做是为了后期能够批量打包图片等资源。

这里通过文件运行的绝对路径结合图片的相对路径来生成图片的绝对路径。将以下函数代码复制到打包代码中:

1
2
3
4
def get_resource_path(relative_path):
if hasattr(sys, '_MEIPASS'):
return os.path.join(sys._MEIPASS, relative_path)
return os.path.join(os.path.abspath("."), relative_path)

定义了函数后,将代码里的图片地址统一换为:

1
get_resource_path('原代码里的图片地址')

2.2 开始进行打包

  1. -add-data后面可以加=,也可以直接空格,效果一样。
  2. -add-data后面的参数值里,有两部分,用 : 或者 ;隔开,前面是指打包前文件所在的位置,后面是指打包后你希望文件所在的位置。比如样例里的:-add-data="image1.png:img" 的意思是把当前目录里一个叫 “image1.png” 的文件打包进去,但是放在打包后的 “img” 目录下,也就是变成 img/image1.png,文件名不变。
  3. -add-data可以用好多次,也就是可以一个文件一个文件地加。
  4. 整个文件夹一起加:-add-data 'images:images' 也就是把当前目录下 images 文件夹里的文件都打包进去,打包后的目录也是 images 一样的文件夹下。

最终在终端运行的代码:

1
pyinstaller --add-data 'images:images' -F py_name.py

python程序带图片等资源打包
https://jimes.cn/2024/01/12/python程序带图片等资源打包/
作者
Jimes
发布于
2024年1月12日
许可协议
\ No newline at end of file +python程序带图片等资源打包 - 马锦的博客

python程序带图片等资源打包

1
2
3
#在打包时,都需要将终端运行地址切换到要打包文件的父目录下
#在终端中运行以下代码
cd 父目录地址

1,常规打包

1
2
3
4
5
Pyinstaller -F py_word.py     #打包成单独exe,在文件夹dist中的单独文件

Pyinstaller -F -w py_word.py  #不带控制台的打包,不建议,会导致静默运行,只能从运行管理器中找到并停止

Pyinstaller -F -w -i chengzi.ico py_word.py  #打包指定exe图标打包

如果打包过大,可以使用anaconda创建虚拟环境只下载需要的第三方库。

2,带资源打包

2.1 首先解决的问题:打包后代码里资源的地址会因在不同环境下运行而不同。

首先需要将图片放到代码同级文件夹内,同时更新代码内的图片地址,这样做是为了后期能够批量打包图片等资源。

这里通过文件运行的绝对路径结合图片的相对路径来生成图片的绝对路径。将以下函数代码复制到打包代码中:

1
2
3
4
def get_resource_path(relative_path):
if hasattr(sys, '_MEIPASS'):
return os.path.join(sys._MEIPASS, relative_path)
return os.path.join(os.path.abspath("."), relative_path)

定义了函数后,将代码里的图片地址统一换为:

1
get_resource_path('原代码里的图片地址')

2.2 开始进行打包

  1. -add-data后面可以加=,也可以直接空格,效果一样。
  2. -add-data后面的参数值里,有两部分,用 : 或者 ;隔开,前面是指打包前文件所在的位置,后面是指打包后你希望文件所在的位置。比如样例里的:-add-data="image1.png:img" 的意思是把当前目录里一个叫 “image1.png” 的文件打包进去,但是放在打包后的 “img” 目录下,也就是变成 img/image1.png,文件名不变。
  3. -add-data可以用好多次,也就是可以一个文件一个文件地加。
  4. 整个文件夹一起加:-add-data 'images:images' 也就是把当前目录下 images 文件夹里的文件都打包进去,打包后的目录也是 images 一样的文件夹下。

最终在终端运行的代码:

1
pyinstaller --add-data 'images:images' -F py_name.py

python程序带图片等资源打包
https://jimes.cn/2024/01/12/python程序带图片等资源打包/
作者
Jimes
发布于
2024年1月12日
许可协议
+ + \ No newline at end of file diff --git a/404.html b/404.html index eed6e8b..8766dab 100644 --- a/404.html +++ b/404.html @@ -1 +1,14 @@ -页面不存在 - 马锦的博客
\ No newline at end of file +页面不存在 - 马锦的博客
+ + \ No newline at end of file diff --git a/about/index.html b/about/index.html index ab407d0..49e474a 100644 --- a/about/index.html +++ b/about/index.html @@ -1 +1,14 @@ -关于 - 马锦的博客
\ No newline at end of file +关于 - 马锦的博客
+ + \ No newline at end of file diff --git a/archives/2024/01/index.html b/archives/2024/01/index.html index f40fea9..098d0b3 100644 --- a/archives/2024/01/index.html +++ b/archives/2024/01/index.html @@ -1 +1,14 @@ -归档 - 马锦的博客
\ No newline at end of file +归档 - 马锦的博客
+ + \ No newline at end of file diff --git a/archives/2024/index.html b/archives/2024/index.html index 16e655e..15f4669 100644 --- a/archives/2024/index.html +++ b/archives/2024/index.html @@ -1 +1,14 @@ -归档 - 马锦的博客
\ No newline at end of file +归档 - 马锦的博客
+ + \ No newline at end of file diff --git a/archives/index.html b/archives/index.html index 8ad60cc..afbf035 100644 --- a/archives/index.html +++ b/archives/index.html @@ -1 +1,14 @@ -归档 - 马锦的博客
\ No newline at end of file +归档 - 马锦的博客
+ + \ No newline at end of file diff --git a/categories/index.html b/categories/index.html index 0e83fa9..e50e984 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1 +1,14 @@ -分类 - 马锦的博客
\ No newline at end of file +分类 - 马锦的博客
+ + \ No newline at end of file diff --git "a/categories/\344\272\272\345\267\245\346\231\272\350\203\275/index.html" "b/categories/\344\272\272\345\267\245\346\231\272\350\203\275/index.html" index 7a9893c..93af916 100644 --- "a/categories/\344\272\272\345\267\245\346\231\272\350\203\275/index.html" +++ "b/categories/\344\272\272\345\267\245\346\231\272\350\203\275/index.html" @@ -1 +1,14 @@ -分类 - 人工智能 - 马锦的博客

共计 1 篇文章


2024

算法学习导航
\ No newline at end of file +分类 - 人工智能 - 马锦的博客

共计 1 篇文章


2024

算法学习导航
+ + \ No newline at end of file diff --git "a/categories/\345\237\272\347\241\200\345\267\245\345\205\267/index.html" "b/categories/\345\237\272\347\241\200\345\267\245\345\205\267/index.html" index 1e2fbc7..35265f4 100644 --- "a/categories/\345\237\272\347\241\200\345\267\245\345\205\267/index.html" +++ "b/categories/\345\237\272\347\241\200\345\267\245\345\205\267/index.html" @@ -1 +1,14 @@ -分类 - 基础工具 - 马锦的博客
\ No newline at end of file +分类 - 基础工具 - 马锦的博客
+ + \ No newline at end of file diff --git a/css/gitalk.css b/css/gitalk.css index c9cf957..1e078aa 100644 --- a/css/gitalk.css +++ b/css/gitalk.css @@ -1,3 +1,3 @@ -/* build time:Fri Jan 12 2024 21:27:44 GMT+0800 (中国标准时间)*/ +/* build time:Fri Jan 12 2024 21:34:06 GMT+0800 (中国标准时间)*/ @font-face{font-family:octicons-link;src:url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format('woff')}.gt-container{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:16px}.gt-container *{-webkit-box-sizing:border-box;box-sizing:border-box}.gt-container a{color:#6190e8}.gt-container a:hover{color:#81a6ed;border-color:#81a6ed}.gt-container a.is--active{color:#333;cursor:default!important}.gt-container a.is--active:hover{color:#333}.gt-container .hide{display:none!important}.gt-container .gt-svg{display:inline-block;width:1em;height:1em;vertical-align:sub}.gt-container .gt-svg svg{width:100%;height:100%;fill:#6190e8}.gt-container .gt-ico{display:inline-block}.gt-container .gt-ico-text{margin-left:.3125em}.gt-container .gt-ico-github{width:100%;height:100%}.gt-container .gt-ico-github .gt-svg{width:100%;height:100%}.gt-container .gt-ico-github svg{fill:inherit}.gt-container .gt-spinner{position:relative}.gt-container .gt-spinner::before{content:'';-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;top:3px;width:.75em;height:.75em;margin-top:-.1875em;margin-left:-.375em;border-radius:50%;border:1px solid #fff;border-top-color:#6190e8;-webkit-animation:gt-kf-rotate .6s linear infinite;animation:gt-kf-rotate .6s linear infinite}.gt-container .gt-loader{position:relative;border:1px solid #999;-webkit-animation:ease gt-kf-rotate 1.5s infinite;animation:ease gt-kf-rotate 1.5s infinite;display:inline-block;font-style:normal;width:1.75em;height:1.75em;line-height:1.75em;border-radius:50%}.gt-container .gt-loader:before{content:'';position:absolute;display:block;top:0;left:50%;margin-top:-.1875em;margin-left:-.1875em;width:.375em;height:.375em;background-color:#999;border-radius:50%}.gt-container .gt-avatar{display:inline-block;width:3.125em;height:3.125em}@media (max-width:479px){.gt-container .gt-avatar{width:2em;height:2em}}.gt-container .gt-avatar img{width:100%;height:auto;border-radius:3px}.gt-container .gt-avatar-github{width:3em;height:3em}@media (max-width:479px){.gt-container .gt-avatar-github{width:1.875em;height:1.875em}}.gt-container .gt-btn{padding:.75em 1.25em;display:inline-block;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;border:1px solid #6190e8;border-radius:5px;background-color:#6190e8;color:#fff;outline:0;font-size:.75em}.gt-container .gt-btn-text{font-weight:400}.gt-container .gt-btn-loading{position:relative;margin-left:.5em;display:inline-block;width:.75em;height:1em;vertical-align:top}.gt-container .gt-btn.is--disable{cursor:not-allowed;opacity:.5}.gt-container .gt-btn-login{margin-right:0}.gt-container .gt-btn-preview{background-color:#fff;color:#6190e8}.gt-container .gt-btn-preview:hover{background-color:#f2f2f2;border-color:#81a6ed}.gt-container .gt-btn-public:hover{background-color:#81a6ed;border-color:#81a6ed}.gt-container .gt-error{text-align:center;margin:.625em;color:#ff3860}.gt-container .gt-initing{padding:1.25em 0;text-align:center}.gt-container .gt-initing-text{margin:.625em auto;font-size:92%}.gt-container .gt-no-init{padding:1.25em 0;text-align:center}.gt-container .gt-link{border-bottom:1px dotted #6190e8}.gt-container .gt-link-counts,.gt-container .gt-link-project{text-decoration:none}.gt-container .gt-meta{margin:1.25em 0;padding:1em 0;position:relative;border-bottom:1px solid #e9e9e9;font-size:1em;position:relative;z-index:10}.gt-container .gt-meta:after,.gt-container .gt-meta:before{content:" ";display:table}.gt-container .gt-meta:after{clear:both}.gt-container .gt-counts{margin:0 .625em 0 0}.gt-container .gt-user{float:right;margin:0;font-size:92%}.gt-container .gt-user-pic{width:16px;height:16px;vertical-align:top;margin-right:.5em}.gt-container .gt-user-inner{display:inline-block;cursor:pointer}.gt-container .gt-user .gt-ico{margin:0 0 0 .3125em}.gt-container .gt-user .gt-ico svg{fill:inherit}.gt-container .gt-user .is--poping .gt-ico svg{fill:#6190e8}.gt-container .gt-version{color:#a1a1a1;margin-left:.375em}.gt-container .gt-copyright{margin:0 .9375em .5em;border-top:1px solid #e9e9e9;padding-top:.5em}.gt-container .gt-popup{position:absolute;right:0;top:2.375em;background:#fff;display:inline-block;border:1px solid #e9e9e9;padding:.625em 0;font-size:.875em;letter-spacing:.5px}.gt-container .gt-popup .gt-action{cursor:pointer;display:block;margin:.5em 0;padding:0 1.125em;position:relative;text-decoration:none}.gt-container .gt-popup .gt-action.is--active:before{content:'';width:.25em;height:.25em;background:#6190e8;position:absolute;left:.5em;top:.4375em}.gt-container .gt-header{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex}.gt-container .gt-header-comment{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:1.25em}@media (max-width:479px){.gt-container .gt-header-comment{margin-left:.875em}}.gt-container .gt-header-textarea{padding:.75em;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;min-height:5.125em;max-height:15em;border-radius:5px;border:1px solid rgba(0,0,0,.1);font-size:.875em;word-wrap:break-word;resize:vertical;background-color:#f6f6f6;outline:0;-webkit-transition:all .25s ease;transition:all .25s ease}.gt-container .gt-header-textarea:hover{background-color:#fbfbfb}.gt-container .gt-header-preview{padding:.75em;border-radius:5px;border:1px solid rgba(0,0,0,.1);background-color:#f6f6f6}.gt-container .gt-header-controls{position:relative;margin:.75em 0 0}.gt-container .gt-header-controls:after,.gt-container .gt-header-controls:before{content:" ";display:table}.gt-container .gt-header-controls:after{clear:both}@media (max-width:479px){.gt-container .gt-header-controls{margin:0}}.gt-container .gt-header-controls-tip{font-size:.875em;color:#6190e8;text-decoration:none;vertical-align:sub}@media (max-width:479px){.gt-container .gt-header-controls-tip{display:none}}.gt-container .gt-header-controls .gt-btn{float:right;margin-left:1.25em}@media (max-width:479px){.gt-container .gt-header-controls .gt-btn{float:none;width:100%;margin:.75em 0 0}}.gt-container:after{content:'';position:fixed;bottom:100%;left:0;right:0;top:0;opacity:0}.gt-container.gt-input-focused{position:relative}.gt-container.gt-input-focused:after{content:'';position:fixed;bottom:0;left:0;right:0;top:0;background:#000;opacity:.6;-webkit-transition:opacity .3s,bottom 0s;transition:opacity .3s,bottom 0s;z-index:9999}.gt-container.gt-input-focused .gt-header-comment{z-index:10000}.gt-container .gt-comments{padding-top:1.25em}.gt-container .gt-comments-null{text-align:center}.gt-container .gt-comments-controls{margin:1.25em 0;text-align:center}.gt-container .gt-comment{position:relative;padding:.625em 0;display:-webkit-box;display:-ms-flexbox;display:flex}.gt-container .gt-comment-content{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:1.25em;padding:.75em 1em;background-color:#f9f9f9;overflow:auto;-webkit-transition:all ease .25s;transition:all ease .25s}.gt-container .gt-comment-content:hover{-webkit-box-shadow:0 .625em 3.75em 0 #f4f4f4;box-shadow:0 .625em 3.75em 0 #f4f4f4}@media (max-width:479px){.gt-container .gt-comment-content{margin-left:.875em;padding:.625em .75em}}.gt-container .gt-comment-header{margin-bottom:.5em;font-size:.875em;position:relative}.gt-container .gt-comment-block-1{float:right;height:1.375em;width:2em}.gt-container .gt-comment-block-2{float:right;height:1.375em;width:4em}.gt-container .gt-comment-username{font-weight:500;color:#6190e8;text-decoration:none}.gt-container .gt-comment-username:hover{text-decoration:underline}.gt-container .gt-comment-text{margin-left:.5em;color:#a1a1a1}.gt-container .gt-comment-date{margin-left:.5em;color:#a1a1a1}.gt-container .gt-comment-edit,.gt-container .gt-comment-like,.gt-container .gt-comment-reply{position:absolute;height:1.375em}.gt-container .gt-comment-edit:hover,.gt-container .gt-comment-like:hover,.gt-container .gt-comment-reply:hover{cursor:pointer}.gt-container .gt-comment-like{top:0;right:2em}.gt-container .gt-comment-edit,.gt-container .gt-comment-reply{top:0;right:0}.gt-container .gt-comment-body{color:#333!important}.gt-container .gt-comment-body .email-hidden-toggle a{display:inline-block;height:12px;padding:0 9px;font-size:12px;font-weight:600;line-height:6px;color:#444d56;text-decoration:none;vertical-align:middle;background:#dfe2e5;border-radius:1px}.gt-container .gt-comment-body .email-hidden-toggle a:hover{background-color:#c6cbd1}.gt-container .gt-comment-body .email-hidden-reply{display:none;white-space:pre-wrap}.gt-container .gt-comment-body .email-hidden-reply .email-signature-reply{padding:0 15px;margin:15px 0;color:#586069;border-left:4px solid #dfe2e5}.gt-container .gt-comment-body .email-hidden-reply.expanded{display:block}.gt-container .gt-comment-admin .gt-comment-content{background-color:#f6f9fe}@-webkit-keyframes gt-kf-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes gt-kf-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}} /* rebuild by neat */ \ No newline at end of file diff --git a/css/highlight-dark.css b/css/highlight-dark.css index 7119e2c..39e5e33 100644 --- a/css/highlight-dark.css +++ b/css/highlight-dark.css @@ -1,3 +1,3 @@ -/* build time:Fri Jan 12 2024 21:27:44 GMT+0800 (中国标准时间)*/ +/* build time:Fri Jan 12 2024 21:34:06 GMT+0800 (中国标准时间)*/ pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#ddd;background:#303030}.hljs-keyword,.hljs-link,.hljs-literal,.hljs-section,.hljs-selector-tag{color:#fff}.hljs-addition,.hljs-attribute,.hljs-built_in,.hljs-bullet,.hljs-name,.hljs-string,.hljs-symbol,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type,.hljs-variable{color:#d88}.hljs-comment,.hljs-deletion,.hljs-meta,.hljs-quote{color:#979797}.hljs-doctag,.hljs-keyword,.hljs-literal,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-strong,.hljs-title,.hljs-type{font-weight:700}.hljs-emphasis{font-style:italic} /* rebuild by neat */ \ No newline at end of file diff --git a/css/highlight.css b/css/highlight.css index c851de8..0b185b6 100644 --- a/css/highlight.css +++ b/css/highlight.css @@ -1,4 +1,4 @@ -/* build time:Fri Jan 12 2024 21:27:44 GMT+0800 (中国标准时间)*/ +/* build time:Fri Jan 12 2024 21:34:06 GMT+0800 (中国标准时间)*/ pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! Theme: GitHub Description: Light theme as seen on github.com diff --git a/css/main.css b/css/main.css index d29c341..b1d9beb 100644 --- a/css/main.css +++ b/css/main.css @@ -1,3 +1,3 @@ -/* build time:Fri Jan 12 2024 21:27:44 GMT+0800 (中国标准时间)*/ +/* build time:Fri Jan 12 2024 21:34:06 GMT+0800 (中国标准时间)*/ .anchorjs-link{text-decoration:none!important;transition:opacity .2s ease-in-out}.markdown-body h1:hover>.anchorjs-link,h2:hover>.anchorjs-link,h3:hover>.anchorjs-link,h4:hover>.anchorjs-link,h5:hover>.anchorjs-link,h6:hover>.anchorjs-link{opacity:1}.banner{height:100%;position:relative;overflow:hidden;cursor:default}.banner .mask{position:absolute;width:100%;height:100%;background-color:rgba(0,0,0,.3)}.banner[parallax=true]{will-change:transform;-webkit-transform-style:preserve-3d;-webkit-backface-visibility:hidden;transition:transform 50ms ease-out}@media (max-width:100vh){.header-inner{max-height:100vw}#board{margin-top:-1rem!important}}@media (max-width:79.99vh){.scroll-down-bar{display:none}}#board{position:relative;margin-top:-2rem;padding:3rem 0;background-color:var(--board-bg-color);transition:background-color .2s ease-in-out;border-radius:.5rem;z-index:3;-webkit-box-shadow:0 12px 15px 0 rgba(0,0,0,.24),0 17px 50px 0 rgba(0,0,0,.19);box-shadow:0 12px 15px 0 rgba(0,0,0,.24),0 17px 50px 0 rgba(0,0,0,.19)}.code-widget{display:inline-block;background-color:transparent;font-size:.75rem;line-height:1;font-weight:700;padding:.3rem .1rem .1rem .1rem;position:absolute;right:.45rem;top:.15rem;z-index:1}.code-widget-light{color:#999}.code-widget-dark{color:#bababa}.copy-btn{cursor:pointer;user-select:none;-webkit-appearance:none;outline:0}.copy-btn>i{font-size:.75rem!important;font-weight:400;margin-right:.15rem;opacity:0;transition:opacity .2s ease-in-out}.markdown-body pre:hover>.copy-btn>i{opacity:.9}.markdown-body pre:hover>.copy-btn,.markdown-body pre:not(:hover)>.copy-btn{outline:0}.license-box{background-color:rgba(27,31,35,.05);transition:background-color .2s ease-in-out;border-radius:4px;font-size:.9rem;overflow:hidden;padding:1.25rem;position:relative;z-index:1}.license-box .license-icon{position:absolute;top:50%;left:100%}.license-box .license-icon::after{content:"\e8e4";font-size:12.5rem;line-height:1;opacity:.1;position:relative;left:-.85em;bottom:.5em;z-index:-1}.license-box .license-title{margin-bottom:1rem}.license-box .license-title div:nth-child(1){line-height:1.2;margin-bottom:.25rem}.license-box .license-title div:nth-child(2){color:var(--sec-text-color);font-size:.8rem}.license-box .license-meta{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.license-box .license-meta .license-meta-item{align-items:center;justify-content:center;margin-right:1.5rem}.license-box .license-meta .license-meta-item div:nth-child(1){color:var(--sec-text-color);font-size:.8rem;font-weight:400}.license-box .license-meta .license-meta-item i.iconfont{font-size:1rem}@media (max-width:575px) and (min-width:425px){.license-box .license-meta .license-meta-item{display:flex;justify-content:flex-start;flex-wrap:wrap;font-size:.8rem;flex:0 0 50%;max-width:50%;margin-right:0}.license-box .license-meta .license-meta-item div:nth-child(1){margin-right:.5rem}.license-box .license-meta .license-meta-date{order:-1}}@media (max-width:424px){.license-box::after{top:-65px}.license-box .license-meta{flex-direction:column;align-items:flex-start}.license-box .license-meta .license-meta-item{display:flex;flex-wrap:wrap;font-size:.8rem}.license-box .license-meta .license-meta-item div:nth-child(1){margin-right:.5rem}}.footer-inner{padding:3rem 0 1rem 0;text-align:center}.footer-inner>div:not(:first-child){margin:.25rem 0;font-size:.85rem}.footer-inner .statistics{display:flex;flex-direction:row;justify-content:center}.footer-inner .statistics>span{flex:1;margin:0 .25rem}.footer-inner .statistics>:nth-last-child(2):first-child{text-align:right}.footer-inner .statistics>:nth-last-child(2):first-child~*{text-align:left}.footer-inner .beian{display:flex;flex-direction:row;justify-content:center}.footer-inner .beian>*{margin:0 .25rem}.footer-inner .beian-police{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:left}.footer-inner .beian-police img{margin-right:3px;width:1rem;height:1rem;margin-bottom:.1rem}@media (max-width:424px){.footer-inner .statistics{flex-direction:column}.footer-inner .statistics>:nth-last-child(2):first-child{text-align:center}.footer-inner .statistics>:nth-last-child(2):first-child~*{text-align:center}.footer-inner .beian{flex-direction:column}.footer-inner .beian .beian-police{justify-content:center}.footer-inner .beian>:nth-last-child(2):first-child{text-align:center}.footer-inner .beian>:nth-last-child(2):first-child~*{text-align:center}}.footnote-text::before,sup>a::before{display:block;content:"";margin-top:-5rem;height:5rem;width:1px;visibility:hidden}.footnote-text::before,sup>a::before{display:inline-block}.footnote-item::before{display:block;content:"";margin-top:-5rem;height:5rem;width:1px;visibility:hidden}.footnote-list ol{list-style-type:none;counter-reset:sectioncounter;padding-left:.5rem;font-size:.95rem}.footnote-list ol li:before{font-family:"Helvetica Neue",monospace,Monaco;content:"[" counter(sectioncounter) "]";counter-increment:sectioncounter}.footnote-list ol li+li{margin-top:.5rem}.footnote-text{padding-left:.5em}.navbar{background-color:transparent;font-size:.875rem;box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.navbar .navbar-brand{color:var(--navbar-text-color)}.navbar .navbar-toggler .animated-icon span{background-color:var(--navbar-text-color)}.navbar .nav-item .nav-link{display:block;color:var(--navbar-text-color);transition:color .2s ease-in-out,background-color .2s ease-in-out}.navbar .nav-item .nav-link:hover{color:var(--link-hover-color)}.navbar .nav-item .nav-link:focus{color:var(--navbar-text-color)}.navbar .nav-item .nav-link i{font-size:.875rem}.navbar .nav-item .nav-link i:only-child{margin:0 .2rem}.navbar .navbar-toggler{border-width:0;outline:0}.navbar.scrolling-navbar{will-change:background,padding;-webkit-transition:background .5s ease-in-out,padding .5s ease-in-out;transition:background .5s ease-in-out,padding .5s ease-in-out}@media (min-width:600px){.navbar.scrolling-navbar{padding-top:12px;padding-bottom:12px}.navbar.scrolling-navbar .navbar-nav>li{-webkit-transition-duration:1s;transition-duration:1s}}.navbar.scrolling-navbar.top-nav-collapse{padding-top:5px;padding-bottom:5px}.navbar .dropdown-menu{font-size:.875rem;color:var(--navbar-text-color);background-color:rgba(0,0,0,.3);border:none;min-width:8rem;-webkit-transition:background .5s ease-in-out,padding .5s ease-in-out;transition:background .5s ease-in-out,padding .5s ease-in-out}@media (max-width:991.98px){.navbar .dropdown-menu{text-align:center}}.navbar .dropdown-item{color:var(--navbar-text-color)}.navbar .dropdown-item:focus,.navbar .dropdown-item:hover{color:var(--link-hover-color);background-color:rgba(0,0,0,.1)}@media (min-width:992px){.navbar .dropdown:hover>.dropdown-menu{display:block}.navbar .dropdown>.dropdown-toggle:active{pointer-events:none}.navbar .dropdown-menu{top:95%}}.navbar .animated-icon{width:30px;height:20px;position:relative;margin:0;-webkit-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0);-webkit-transition:.5s ease-in-out;-moz-transition:.5s ease-in-out;-o-transition:.5s ease-in-out;transition:.5s ease-in-out;cursor:pointer}.navbar .animated-icon span{display:block;position:absolute;height:3px;width:100%;border-radius:9px;opacity:1;left:0;-webkit-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0);-webkit-transition:.25s ease-in-out;-moz-transition:.25s ease-in-out;-o-transition:.25s ease-in-out;transition:.25s ease-in-out;background:#fff}.navbar .animated-icon span:nth-child(1){top:0}.navbar .animated-icon span:nth-child(2){top:10px}.navbar .animated-icon span:nth-child(3){top:20px}.navbar .animated-icon.open span:nth-child(1){top:11px;-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);-o-transform:rotate(135deg);transform:rotate(135deg)}.navbar .animated-icon.open span:nth-child(2){opacity:0;left:-60px}.navbar .animated-icon.open span:nth-child(3){top:11px;-webkit-transform:rotate(-135deg);-moz-transform:rotate(-135deg);-o-transform:rotate(-135deg);transform:rotate(-135deg)}.navbar .dropdown-collapse,.navbar-col-show,.top-nav-collapse{background-color:var(--navbar-bg-color)}@media (max-width:767px){.navbar{font-size:1rem;line-height:2.5rem}}.banner-text{color:var(--subtitle-color);max-width:calc(960px - 6rem);width:80%;overflow-wrap:break-word}.banner-text .typed-cursor{margin:0 .2rem}@media (max-width:767px){#subtitle,.typed-cursor{font-size:1.5rem}}@media (max-width:575px){.banner-text{font-size:.9rem}#subtitle,.typed-cursor{font-size:1.35rem}}.navbar-title{outline:0;--c:#20b2aa;text-shadow:0 0 10px var(--c),0 0 20px var(--c),0 0 40px var(--c),0 0 80px var(--c),0 0 160px var(--c);animation:animate 5s linear infinite}@-moz-keyframes animate{to{filter:hue-rotate(360deg)}}@-webkit-keyframes animate{to{filter:hue-rotate(360deg)}}@-o-keyframes animate{to{filter:hue-rotate(360deg)}}@keyframes animate{to{filter:hue-rotate(360deg)}}.modal-dialog .modal-content{background-color:var(--board-bg-color);border:0;border-radius:.125rem;-webkit-box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15);box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15)}.modal-dialog .modal-content .modal-header{border-bottom-color:var(--line-color);transition:border-bottom-color .2s ease-in-out}.close{color:var(--text-color)}.close:hover{color:var(--link-hover-color)}.close:focus{outline:0}.modal-dialog .modal-content .modal-header{border-top-left-radius:.125rem;border-top-right-radius:.125rem;border-bottom:1px solid #dee2e6}.md-form{position:relative;margin-top:1.5rem;margin-bottom:1.5rem}.md-form input[type]{-webkit-box-sizing:content-box;box-sizing:content-box;background-color:transparent;border:none;border-bottom:1px solid #ced4da;border-radius:0;outline:0;-webkit-box-shadow:none;box-shadow:none;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}.md-form input[type]:focus:not([readonly]){border-bottom:1px solid #4285f4;-webkit-box-shadow:0 1px 0 0 #4285f4;box-shadow:0 1px 0 0 #4285f4}.md-form input[type]:focus:not([readonly])+label{color:#4285f4}.md-form input[type].valid,.md-form input[type]:focus.valid{border-bottom:1px solid #00c851;-webkit-box-shadow:0 1px 0 0 #00c851;box-shadow:0 1px 0 0 #00c851}.md-form input[type].valid+label,.md-form input[type]:focus.valid+label{color:#00c851}.md-form input[type].invalid,.md-form input[type]:focus.invalid{border-bottom:1px solid #f44336;-webkit-box-shadow:0 1px 0 0 #f44336;box-shadow:0 1px 0 0 #f44336}.md-form input[type].invalid+label,.md-form input[type]:focus.invalid+label{color:#f44336}.md-form input[type].validate{margin-bottom:2.5rem}.md-form input[type].form-control{height:auto;padding:.6rem 0 .4rem 0;margin:0 0 .5rem 0;color:var(--text-color);background-color:transparent;border-radius:0}.md-form label{font-size:.8rem;position:absolute;top:-1rem;left:0;color:#757575;cursor:text;transition:color .2s ease-out}.modal-open[style]{padding-right:0!important;overflow:auto}.modal-open[style] #navbar[style]{padding-right:1rem!important}#nprogress .bar{height:3px!important;background-color:#29d!important}#nprogress .peg{box-shadow:0 0 14px #29d,0 0 8px #29d!important}@media (max-width:575px){#nprogress .bar{display:none}}.noscript-warning{background-color:#f55;color:#fff;font-family:sans-serif;font-size:1rem;font-weight:700;position:fixed;left:0;bottom:0;text-align:center;width:100%;z-index:99}.pagination{margin-top:3rem;justify-content:center}.pagination .space{align-self:flex-end}.pagination .current,.pagination .extend,.pagination .page-number{outline:0;border:0;background-color:transparent;font-size:.9rem;padding:.5rem .75rem;line-height:1.25;border-radius:.125rem}.pagination .page-number{margin:0 .05rem}.pagination .current,.pagination .page-number:hover{transition:background-color .2s ease-in-out;background-color:var(--link-hover-bg-color)}.qr-trigger{cursor:pointer;position:relative}.qr-trigger:hover .qr-img{display:block;transition:all .3s}.qr-img{max-width:12rem;position:absolute;right:-5.25rem;z-index:99;display:none;border-radius:.2rem;background-color:transparent;box-shadow:0 0 20px -5px rgba(158,158,158,.2)}.scroll-down-bar{position:absolute;width:100%;height:6rem;text-align:center;cursor:pointer;bottom:0}.scroll-down-bar i.iconfont{font-size:2rem;font-weight:700;display:inline-block;position:relative;padding-top:2rem;color:var(--subtitle-color);transform:translateZ(0);animation:scroll-down 1.5s infinite}#scroll-top-button{position:fixed;z-index:99;background:var(--board-bg-color);transition:background-color .2s ease-in-out,bottom .3s ease;border-radius:4px;min-width:40px;min-height:40px;bottom:-60px;outline:0;display:flex;display:-webkit-flex;align-items:center;box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}#scroll-top-button i{font-size:32px;margin:auto;color:var(--sec-text-color)}#scroll-top-button:active i,#scroll-top-button:hover i{animation-name:scroll-top;animation-duration:1s;animation-delay:.1s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-fill-mode:forwards;animation-direction:alternate}#local-search-result .search-list-title{border-left:3px solid #0d47a1}#local-search-result .search-list-content{padding:0 1.25rem}#local-search-result .search-word{color:#ff4500}#toc{visibility:hidden}.toc-header{margin-bottom:.5rem;font-weight:700;line-height:1.2}.toc-header,.toc-header>i{font-size:1.25rem}.toc-body{max-height:75vh;overflow-y:auto;overflow:-moz-scrollbars-none;-ms-overflow-style:none}.toc-body ol{list-style:none;padding-inline-start:1rem}.toc-body::-webkit-scrollbar{display:none}.tocbot-list{position:relative}.tocbot-list ol{list-style:none;padding-left:1rem}.tocbot-list a{font-size:.95rem}.tocbot-link{color:var(--text-color)}.tocbot-active-link{font-weight:700;color:var(--link-hover-color)}.tocbot-is-collapsed{max-height:0}.tocbot-is-collapsible{overflow:hidden;transition:all .3s ease-in-out}.toc-list-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toc-list-item.is-active-li::before{height:1rem;margin:.25rem 0;visibility:visible}.toc-list-item::before{width:.15rem;height:.2rem;position:absolute;left:.25rem;content:"";border-radius:2px;margin:.65rem 0;background:var(--link-hover-color);visibility:hidden;transition:height .1s ease-in-out,margin .1s ease-in-out,visibility .1s ease-in-out}.sidebar{position:-webkit-sticky;position:sticky;top:2rem;padding:3rem 0}html{font-size:17px;letter-spacing:.02em}body,html{height:100%;font-family:var(--font-family-sans-serif);overflow-wrap:break-word}body{transition:color .2s ease-in-out,background-color .2s ease-in-out;background-color:var(--body-bg-color);color:var(--text-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body a{color:var(--text-color);text-decoration:none;cursor:pointer;transition:color .2s ease-in-out,background-color .2s ease-in-out}body a:hover{color:var(--link-hover-color);text-decoration:none;transition:color .2s ease-in-out,background-color .2s ease-in-out}code{color:inherit}table{font-size:inherit;color:var(--post-text-color)}img[lazyload]{object-fit:cover}[align=left]{text-align:left}[align=center]{text-align:center}[align=right]{text-align:right}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background-color:var(--scrollbar-color);border-radius:6px}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-hover-color)}::-webkit-scrollbar-corner{background-color:transparent}label{margin-bottom:0}i.iconfont{font-size:1em;line-height:1}:root{--color-mode:"light";--body-bg-color:#eee;--board-bg-color:#fff;--text-color:#3c4858;--sec-text-color:#718096;--post-text-color:#2c3e50;--post-heading-color:#1a202c;--post-link-color:#0366d6;--link-hover-color:#30a9de;--link-hover-bg-color:#f8f9fa;--line-color:#eaecef;--navbar-bg-color:#2f4154;--navbar-text-color:#fff;--subtitle-color:#fff;--scrollbar-color:#c4c6c9;--scrollbar-hover-color:#a6a6a6;--button-bg-color:transparent;--button-hover-bg-color:#f2f3f5;--highlight-bg-color:#f6f8fa;--inlinecode-bg-color:rgba(175,184,193,0.2);--fold-title-color:#3c4858;--fold-border-color:#eaecef}@media (prefers-color-scheme:dark){:root{--color-mode:"dark"}:root:not([data-user-color-scheme]){--body-bg-color:#181c27;--board-bg-color:#252d38;--text-color:#c4c6c9;--sec-text-color:#a7a9ad;--post-text-color:#c4c6c9;--post-heading-color:#c4c6c9;--post-link-color:#1589e9;--link-hover-color:#30a9de;--link-hover-bg-color:#364151;--line-color:#435266;--navbar-bg-color:#1f3144;--navbar-text-color:#d0d0d0;--subtitle-color:#d0d0d0;--scrollbar-color:#687582;--scrollbar-hover-color:#9da8b3;--button-bg-color:transparent;--button-hover-bg-color:#46647e;--highlight-bg-color:#303030;--inlinecode-bg-color:rgba(99,110,123,0.4);--fold-title-color:#c4c6c9;--fold-border-color:#435266}:root:not([data-user-color-scheme]) img{-webkit-filter:brightness(.9);filter:brightness(.9);transition:filter .2s ease-in-out}:root:not([data-user-color-scheme]) .license-box{background-color:rgba(62,75,94,.35);transition:background-color .2s ease-in-out}:root:not([data-user-color-scheme]) .gt-comment-admin .gt-comment-content{background-color:transparent;transition:background-color .2s ease-in-out}}@media not print{[data-user-color-scheme=dark]{--body-bg-color:#181c27;--board-bg-color:#252d38;--text-color:#c4c6c9;--sec-text-color:#a7a9ad;--post-text-color:#c4c6c9;--post-heading-color:#c4c6c9;--post-link-color:#1589e9;--link-hover-color:#30a9de;--link-hover-bg-color:#364151;--line-color:#435266;--navbar-bg-color:#1f3144;--navbar-text-color:#d0d0d0;--subtitle-color:#d0d0d0;--scrollbar-color:#687582;--scrollbar-hover-color:#9da8b3;--button-bg-color:transparent;--button-hover-bg-color:#46647e;--highlight-bg-color:#303030;--inlinecode-bg-color:rgba(99,110,123,0.4);--fold-title-color:#c4c6c9;--fold-border-color:#435266}[data-user-color-scheme=dark] img{-webkit-filter:brightness(.9);filter:brightness(.9);transition:filter .2s ease-in-out}[data-user-color-scheme=dark] .license-box{background-color:rgba(62,75,94,.35);transition:background-color .2s ease-in-out}[data-user-color-scheme=dark] .gt-comment-admin .gt-comment-content{background-color:transparent;transition:background-color .2s ease-in-out}}@media print{:root{--color-mode:"light"}}.fade-in-up{-webkit-animation-name:fade-in-up;animation-name:fade-in-up}.hidden-mobile{display:block}.visible-mobile{display:none}@media (max-width:575px){.hidden-mobile{display:none}.visible-mobile{display:block}}.nomargin-x{margin-left:0!important;margin-right:0!important}.nopadding-x{padding-left:0!important;padding-right:0!important}@media (max-width:767px){.nopadding-x-md{padding-left:0!important;padding-right:0!important}}.flex-center{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;height:100%}.hover-with-bg{display:inline-block;line-height:1}.hover-with-bg:hover{background-color:var(--link-hover-bg-color);transition-duration:.2s;transition-timing-function:ease-in-out;border-radius:.2rem}@-moz-keyframes fade-in-up{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes fade-in-up{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-o-keyframes fade-in-up{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fade-in-up{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-moz-keyframes scroll-down{0%{opacity:.8;top:0}50%{opacity:.4;top:-1em}100%{opacity:.8;top:0}}@-webkit-keyframes scroll-down{0%{opacity:.8;top:0}50%{opacity:.4;top:-1em}100%{opacity:.8;top:0}}@-o-keyframes scroll-down{0%{opacity:.8;top:0}50%{opacity:.4;top:-1em}100%{opacity:.8;top:0}}@keyframes scroll-down{0%{opacity:.8;top:0}50%{opacity:.4;top:-1em}100%{opacity:.8;top:0}}@-moz-keyframes scroll-top{0%{-webkit-transform:translateY(0);transform:translateY(0)}50%{-webkit-transform:translateY(-.35rem);transform:translateY(-.35rem)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes scroll-top{0%{-webkit-transform:translateY(0);transform:translateY(0)}50%{-webkit-transform:translateY(-.35rem);transform:translateY(-.35rem)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@-o-keyframes scroll-top{0%{-webkit-transform:translateY(0);transform:translateY(0)}50%{-webkit-transform:translateY(-.35rem);transform:translateY(-.35rem)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes scroll-top{0%{-webkit-transform:translateY(0);transform:translateY(0)}50%{-webkit-transform:translateY(-.35rem);transform:translateY(-.35rem)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@media print{#comments,#scroll-top-button,.post-prevnext,.side-col,footer,header{display:none!important}.markdown-body a:not([href^='#']):not([href^='javascript:']):not(.print-no-link)::after{content:' (' attr(href) ')';font-size:.8rem;color:var(--post-text-color);opacity:.8}.markdown-body h2,.markdown-body>h1{border-bottom-color:transparent!important}.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6,.markdown-body>h1{margin-top:1.25em!important;margin-bottom:.25em!important}.markdown-body [data-anchorjs-icon]::after{display:none}.markdown-body figure.highlight table,.markdown-body figure.highlight tbody,.markdown-body figure.highlight td.code,.markdown-body figure.highlight td.code pre,.markdown-body figure.highlight tr{width:100%!important;display:block!important}.markdown-body figure.highlight pre>code{white-space:pre-wrap}.markdown-body figure.highlight .code-widget,.markdown-body figure.highlight .gutter{display:none!important}.post-metas a{text-decoration:none}}@media not print{#seo-header{display:none}}.index-card{margin-bottom:2.5rem}.index-img img{display:block;width:100%;height:10rem;object-fit:cover;box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15);border-radius:.25rem;background-color:transparent}.index-info{display:flex;flex-direction:column;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.index-header{color:var(--text-color);font-size:1.5rem;font-weight:700;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.25rem}.index-header .index-pin{color:var(--text-color);font-size:1.5rem;margin-right:.15rem}.index-btm{color:var(--sec-text-color)}.index-btm a{color:var(--sec-text-color)}.index-excerpt{color:var(--sec-text-color);margin:.5rem 0;height:calc(1.4rem * 3);overflow:hidden;display:flex}.index-excerpt>div{width:100%;line-height:1.4rem;word-break:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.index-excerpt__noimg{height:auto;max-height:calc(1.4rem * 3)}@media (max-width:767px){.index-info{padding-top:1.25rem}.index-header{font-size:1.25rem;white-space:normal;overflow:hidden;word-break:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.index-header .index-pin{font-size:1.25rem}.index-excerpt{height:auto;max-height:calc(1.4rem * 3);margin:.25rem 0}}#valine.v[data-class=v] .status-bar,#valine.v[data-class=v] .vbtn,#valine.v[data-class=v] .veditor,#valine.v[data-class=v] .vinput,#valine.v[data-class=v] p,#valine.v[data-class=v] pre code{color:var(--text-color)}#valine.v[data-class=v] .vinput::placeholder{color:var(--sec-text-color)}#valine.v[data-class=v] .vicon{fill:var(--text-color)}.gt-container .gt-comment-content:hover{-webkit-box-shadow:none;box-shadow:none}.gt-container .gt-comment-body{color:var(--text-color)!important;transition:color .2s ease-in-out}#remark-km423lmfdslkm34-back{z-index:1030}#remark-km423lmfdslkm34-node{z-index:1031}.markdown-body .highlight pre,.markdown-body pre{padding:1.45rem 1rem}.markdown-body pre code.hljs{padding:0}.markdown-body pre[class*=language-]{padding-top:1.45rem;padding-bottom:1.45rem;padding-right:1rem;line-height:1.5;margin-bottom:1rem}.markdown-body .code-wrapper{position:relative;border-radius:4px;margin-bottom:1rem}.markdown-body .code-wrapper pre,.markdown-body .highlight pre,.markdown-body .hljs,.markdown-body figure.highlight td.gutter{transition:color .2s ease-in-out,background-color .2s ease-in-out;background-color:var(--highlight-bg-color)}pre[class*=language-].line-numbers{position:initial}figure{margin:1rem 0}figure.highlight{position:relative}figure.highlight table{border:0;margin:0;width:auto;border-radius:4px}figure.highlight td{border:0;padding:0}figure.highlight tr{border:0}figure.highlight td.code{width:100%}figure.highlight td.gutter{display:table-cell;position:-webkit-sticky;position:sticky;left:0;z-index:1}figure.highlight td.gutter pre{text-align:right;padding:0 .75rem;border-radius:initial;border-right:1px solid #999}figure.highlight td.gutter pre span.line{color:#999}figure.highlight td.code>pre{border-top-left-radius:0;border-bottom-left-radius:0}.markdown-body{font-size:1rem;line-height:1.6;font-family:var(--font-family-sans-serif);margin-bottom:2rem;color:var(--post-text-color)}.markdown-body h2,.markdown-body>h1{border-bottom-color:var(--line-color)}.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6,.markdown-body>h1{color:var(--post-heading-color);transition:color .2s ease-in-out,border-bottom-color .2s ease-in-out;font-weight:700;margin-bottom:.75em;margin-top:2em}.markdown-body h2::before,.markdown-body h3::before,.markdown-body h4::before,.markdown-body h5::before,.markdown-body h6::before,.markdown-body>h1::before{display:block;content:"";margin-top:-5rem;height:5rem;width:1px;visibility:hidden}.markdown-body h2:focus,.markdown-body h3:focus,.markdown-body h4:focus,.markdown-body h5:focus,.markdown-body h6:focus,.markdown-body>h1:focus{outline:0}.markdown-body a{color:var(--post-link-color)}.markdown-body strong{font-weight:700}.markdown-body code{tab-size:4;background-color:var(--inlinecode-bg-color);transition:background-color .2s ease-in-out}.markdown-body table tr{background-color:var(--board-bg-color);transition:background-color .2s ease-in-out}.markdown-body table tr:nth-child(2n){background-color:var(--board-bg-color);transition:background-color .2s ease-in-out}.markdown-body table td,.markdown-body table th{border-color:var(--line-color);transition:border-color .2s ease-in-out}.markdown-body pre{font-size:85%!important}.markdown-body pre .mermaid{text-align:center}.markdown-body pre .mermaid>svg{min-width:100%}.markdown-body figure>a>img,.markdown-body figure>img,.markdown-body p>a>img,.markdown-body p>img{max-width:90%;margin:1.5rem auto;display:block;box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15);border-radius:4px;background-color:transparent}.markdown-body blockquote{color:var(--sec-text-color)}.markdown-body details{cursor:pointer}.markdown-body details summary{outline:0}.markdown-body hr,hr{background-color:initial;border-top:1px solid var(--line-color);transition:border-top-color .2s ease-in-out}.markdown-body hr{height:0;margin:2rem 0}.markdown-body figcaption.image-caption{font-size:.8rem;color:var(--post-text-color);opacity:.65;line-height:1;margin:-.75rem auto 2rem;text-align:center}.markdown-body figcaption:not(.image-caption){display:none}.post-content,post-custom{box-sizing:border-box;padding-left:10%;padding-right:10%}@media (max-width:767px){.post-content,post-custom{padding-left:2rem;padding-right:2rem}}@media (max-width:424px){.post-content,post-custom{padding-left:1rem;padding-right:1rem}.anchorjs-link-left{opacity:0!important}}.page-content strong,.post-content strong{font-weight:700}.page-content>:nth-child(2),.post-content>:nth-child(2){margin-top:0}.page-content img,.post-content img{object-fit:cover;max-width:100%}@media (max-width:767px){.page-content,.post-content{overflow-x:hidden}}.post-metas{display:flex;flex-wrap:wrap;font-size:.9rem}.post-meta>:not(.hover-with-bg){margin-right:.2rem}.post-prevnext{display:flex;flex-wrap:wrap;justify-content:space-between;font-size:.9rem;margin-left:-.35rem;margin-right:-.35rem}.post-prevnext .post-next,.post-prevnext .post-prev{display:flex;padding-left:0;padding-right:0}.post-prevnext .post-next i,.post-prevnext .post-prev i{font-size:1.5rem}.post-prevnext .post-next a,.post-prevnext .post-prev a{display:flex;align-items:center}.post-prevnext .post-next .hidden-mobile,.post-prevnext .post-prev .hidden-mobile{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-overflow:ellipsis;overflow:hidden}@media (max-width:575px){.post-prevnext .post-next .hidden-mobile,.post-prevnext .post-prev .hidden-mobile{display:none}}.post-prevnext .post-next:active i,.post-prevnext .post-next:hover i,.post-prevnext .post-prev:active i,.post-prevnext .post-prev:hover i{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-delay:.1s;animation-delay:.1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-direction:alternate;animation-direction:alternate}.post-prevnext .post-prev:active i,.post-prevnext .post-prev:hover i{-webkit-animation-name:post-prev-anim;animation-name:post-prev-anim}.post-prevnext .post-next:active i,.post-prevnext .post-next:hover i{-webkit-animation-name:post-next-anim;animation-name:post-next-anim}.post-prevnext .post-next{justify-content:flex-end}.post-prevnext .fa-chevron-left{margin-right:.5rem}.post-prevnext .fa-chevron-right{margin-left:.5rem}#seo-header{color:var(--post-heading-color);font-weight:700;margin-top:.5em;margin-bottom:.75em;border-bottom-color:var(--line-color);border-bottom-style:solid;border-bottom-width:2px;line-height:1.5}#comments,.custom{margin-top:2rem}#comments noscript{display:block;text-align:center;padding:2rem 0}.visitors{font-size:.8em;padding:.45rem;float:right}a.fancybox:hover{text-decoration:none}.mjx-container,mjx-container{overflow-x:auto;overflow-y:hidden!important;padding:.5em 0}.mjx-container svg:focus,.mjx-container:focus,mjx-container svg:focus,mjx-container:focus{outline:0}.mjx-char{line-height:1}.katex-block{overflow-x:auto}.katex,.mjx-mrow{white-space:pre-wrap!important}.footnote-ref [class*=hint--][aria-label]:after{max-width:12rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@-moz-keyframes post-prev-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(-.35rem);transform:translateX(-.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes post-prev-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(-.35rem);transform:translateX(-.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@-o-keyframes post-prev-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(-.35rem);transform:translateX(-.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes post-prev-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(-.35rem);transform:translateX(-.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@-moz-keyframes post-next-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(.35rem);transform:translateX(.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes post-next-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(.35rem);transform:translateX(.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@-o-keyframes post-next-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(.35rem);transform:translateX(.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes post-next-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(.35rem);transform:translateX(.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.fold{margin:1rem 0;border:.5px solid var(--fold-border-color);position:relative;clear:both;border-radius:.125rem}.fold .fold-title{color:var(--fold-title-color);padding:.5rem .75rem;font-size:.9rem;font-weight:700;border-radius:.125rem}.fold .fold-title:not(.collapsed)>.fold-arrow{transform:rotate(90deg);transform-origin:center center}.fold .fold-title .fold-arrow{display:inline-block;margin-right:.35rem;transition:transform .3s ease-out}.fold .fold-content{padding:1rem 1rem}.fold .fold-content>:last-child{margin-bottom:0}.fold-default,.fold-secondary{background-color:rgba(187,187,187,.25)}.fold-primary{background-color:rgba(183,160,224,.25)}.fold-info{background-color:rgba(160,197,228,.25)}.fold-success{background-color:rgba(174,220,174,.25)}.fold-warning{background-color:rgba(248,214,166,.25)}.fold-danger{background-color:rgba(236,169,167,.25)}.fold-light{background-color:rgba(254,254,254,.25)}.note{padding:.75rem;border-left:.35rem solid;border-radius:.25rem;margin:1.5rem 0;color:var(--text-color);transition:color .2s ease-in-out;font-size:.9rem}.note a{color:var(--text-color);transition:color .2s ease-in-out}.note :last-child{margin-bottom:0}.note-default,.note-secondary{background-color:rgba(187,187,187,.25);border-color:#777}.note-primary{background-color:rgba(183,160,224,.25);border-color:#6f42c1}.note-success{background-color:rgba(174,220,174,.25);border-color:#5cb85c}.note-danger{background-color:rgba(236,169,167,.25);border-color:#d9534f}.note-warning{background-color:rgba(248,214,166,.25);border-color:#f0ad4e}.note-info{background-color:rgba(160,197,228,.25);border-color:#428bca}.note-light{background-color:rgba(254,254,254,.25);border-color:#0f0f0f}.label{display:inline;border-radius:3px;font-size:85%;margin:0;padding:.2em .4em;color:var(--text-color);transition:color .2s ease-in-out}.label-default,.label-secondary{background-color:rgba(187,187,187,.25)}.label-primary{background-color:rgba(183,160,224,.25)}.label-info{background-color:rgba(160,197,228,.25)}.label-success{background-color:rgba(174,220,174,.25)}.label-warning{background-color:rgba(248,214,166,.25)}.label-danger{background-color:rgba(236,169,167,.25)}.markdown-body .btn{border:1px solid var(--line-color);background-color:var(--button-bg-color);color:var(--text-color);transition:color .2s ease-in-out,background .2s ease-in-out,border-color .2s ease-in-out;border-radius:.25rem;display:inline-block;font-size:.875em;line-height:2;padding:0 .75rem;margin-bottom:1rem}.markdown-body .btn:hover{background-color:var(--button-hover-bg-color);text-decoration:none}.group-image-container{margin:1.5rem auto}.group-image-container img{margin:0 auto;border-radius:3px;background-color:transparent;box-shadow:0 3px 9px 0 rgba(0,0,0,.15),0 3px 9px 0 rgba(0,0,0,.15)}.group-image-row{margin-bottom:.5rem;display:flex;justify-content:center}.group-image-wrap{flex:1;display:flex;justify-content:center}.group-image-wrap:not(:last-child){margin-right:.25rem}input[type=checkbox]{margin:0 .2em .2em 0;vertical-align:middle}.list-group a~p.h5{margin-top:1rem}.list-group-item{display:flex;background-color:transparent;border:0}.list-group-item time{flex:0 0 5rem}.list-group-item .list-group-item-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width:575px){.list-group-item{font-size:.95rem;padding:.5rem .75rem}.list-group-item time{flex:0 0 4rem}}.list-group-item-action{color:var(--text-color)}.list-group-item-action:focus,.list-group-item-action:hover{color:var(--link-hover-color);background-color:var(--link-hover-bg-color)}.about-avatar{position:relative;margin:-8rem auto 1rem;width:10rem;height:10rem;z-index:3}.about-avatar img{width:100%;height:100%;border-radius:50%;background-color:transparent;object-fit:cover;box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.about-info>div{margin-bottom:.5rem}.about-name{font-size:1.75rem;font-weight:700}.about-intro{font-size:1rem}.about-icons>a:not(:last-child){margin-right:.5rem}.about-icons>a>i{font-size:1.5rem}.category-bar .category-list{max-height:85vh;overflow-y:auto;overflow-x:hidden}.category-bar .category-list::-webkit-scrollbar{display:none}.category-bar .category-list>.category-sub>a{font-weight:700;font-size:1.2rem}.category-bar .category-list .category-item-action i{margin:0}.category-bar .category-list .category-subitem.list-group-item{padding-left:.5rem;padding-right:0}.category-bar .category-list .category-collapse .category-post-list{margin-top:.25rem;margin-bottom:.5rem}.category-bar .category-list .category-collapse .category-post{font-size:.9rem;line-height:1.75}.category-bar .category-list .category-item-action:hover{background-color:initial}.category-bar .list-group-item{padding:0}.category-bar .list-group-item.active{color:var(--link-hover-color);background-color:initial;font-weight:700;font-family:iconfont;font-style:normal;-webkit-font-smoothing:antialiased}.category-bar .list-group-item.active::before{content:"\e61f";font-weight:initial;margin-right:.25rem}.category-bar .list-group-count{margin-left:.2rem;margin-right:.2rem;font-size:.9em}.category-bar .list-group-item-action:focus,.category-bar .list-group-item-action:hover{background-color:initial}.category-chains{display:flex;flex-wrap:wrap}.category-chains>:not(:last-child){margin-right:1em}.category:not(:last-child){margin-bottom:1rem}.category .category-item,.category .category-subitem{font-weight:700;display:flex;align-items:center}.category .category-item{font-size:1.25rem}.category .category-subitem{font-size:1.1rem}.category .category-collapse{padding-left:1.25rem;width:100%}.category .category-count{font-size:.9rem;font-weight:initial;min-width:1.3em;line-height:1.3em;display:flex;align-items:center}.category .category-count i{padding-right:.25rem}.category .category-count span{width:2rem}.category .category-post{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category .category-item-action:not(.collapsed)>i{transform:rotate(90deg);transform-origin:center center}.category .category-item-action i{transition:transform .3s ease-out;display:inline-block;margin-left:.25rem}.category .category-item-action .category:hover{z-index:1;color:var(--link-hover-color);text-decoration:none;background-color:var(--link-hover-bg-color)}.category .row{margin-left:0;margin-right:0}.tagcloud{padding:1rem 5%}.tagcloud a{display:inline-block;padding:.5rem}.tagcloud a:hover{color:var(--link-hover-color)!important}.links .card{box-shadow:none;min-width:33%;background-color:transparent;border:0}.links .card-body{margin:1rem 0;padding:1rem;border-radius:.3rem;display:block;width:100%;height:100%}.links .card-body:hover .link-avatar{transform:scale(1.1)}.links .card-content{display:flex;flex-wrap:nowrap;width:100%;height:3.5rem}.link-avatar{flex:none;width:3rem;height:3rem;margin-right:.75rem;object-fit:cover;transition-duration:.2s;transition-timing-function:ease-in-out}.link-avatar img{width:100%;height:100%;border-radius:50%;background-color:transparent;object-fit:cover}.link-text{flex:1;display:grid;flex-direction:column;line-height:1.5}.link-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-color);font-weight:700}.link-intro{max-height:2rem;font-size:.85rem;line-height:1.2;color:var(--sec-text-color);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-overflow:ellipsis;overflow:hidden}@media (max-width:767px){.links{display:flex;flex-direction:column;justify-content:center;align-items:center}.links .card{padding-left:2rem;padding-right:2rem}}@media (min-width:768px){.link-text:only-child{margin-left:1rem}} /* rebuild by neat */ \ No newline at end of file diff --git a/index.html b/index.html index 8db5fd6..fca4e8c 100644 --- a/index.html +++ b/index.html @@ -1 +1,14 @@ -马锦的博客
\ No newline at end of file +马锦的博客
+ + \ No newline at end of file diff --git a/links/index.html b/links/index.html index 604d543..c3e7636 100644 --- a/links/index.html +++ b/links/index.html @@ -1 +1,14 @@ -友链 - 马锦的博客
\ No newline at end of file +友链 - 马锦的博客
+ + \ No newline at end of file diff --git a/local-search.xml b/local-search.xml index eee1f71..2e89f15 100644 --- a/local-search.xml +++ b/local-search.xml @@ -46,7 +46,7 @@ /2024/01/09/GitHub%20desktop%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95/ - 一,仓库

1.1新建仓库

1,点击File,再点击new repository。

2,通过新建仓库可以实时的在GitHub和GitHub desktop中创建一个空的仓库,你可以对新建的仓库进行各项设置。

包括仓库名字,仓库描述,仓库本地位置,自动创建readme文件,忽略文件的选择,以及开源许可证的选择。这里介绍后两个的详细内容:

git ignore可以选择忽略文件,如果你有些文件并不想上传,那你就可以将其设置。

以下是一个示例 .gitignore 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13

# Ignore node_modules folder 忽略文件夹
node_modules/

# Ignore build artifacts 忽略目录
build/
dist/
*.log

# Ignore configuration files 忽略文件
.env
config.js

这将忽略 node_modules 文件夹、build 和 dist 目录、所有以 .log 结尾的文件以及 .env 和 config.js 文件。

license为许可证设置,设置许可证的目的是为了让别人可以合理合法地使用与修改我们的代码,有多种许可证可以选择,它们具有不同的权限设置。

总结一下,MIT 最自由,简直就是没有任何限制,任何人都可以售卖我的软件,甚至可以用我的名字促销。BSD 和 Apache 协议也很自由,跟 MIT 的区别分别是不允许用作者本人名义促销和保护作者版权。GPL 可以说最霸道,对代码的修改部分也必须是 GPL 的,同时基于 GPL 代码而开发的代码也必须按照 GPL 发布,而 MPL ,也就是 Mozilla Public License 就温和一些,如果后续开发的代码中添加了新文件,同时新文件中也没有用到原来的代码,那么新文件可以不必继续沿用 MPL 。【如何为自己的 Github 项目选择开源许可证? - 知乎 (zhihu.com)

3,当你完成了前两步,你还需要点击Publish repository来上传仓库,并设置仓库是否公开(这很重要!)

1.2添加本地仓库

1,点击File,再点击Ddd local repository。

2,输入本地文件地址,但如果你的文件未初始化为git仓库,则需要点击create a repository来新建一个仓库(作用是将选定的文件初始化为git仓库)

3,点击后则与上面一样,进行各种参数填充。

1.3克隆仓库

1,点击File,再点击Clone repository。

2,选择需要克隆的仓库,如果你是要克隆别人的仓库,可以选择URL

1.4编辑仓库

1.5删除仓库

如果你想切断GitHub与本地库的连接,你可以执行以下操作:

  1. 删除本地库中的.git文件夹(这是一个隐藏文件夹,你需要启用显示隐藏文件夹选项)

  2. 如果你想从GitHub上删除该库,你可以在GitHub上进入该库,点击“Settings”,然后在“Danger Zone”中点击“Delete this repository”。

这里推荐使用GitHub desktop进行删除操作:

右击需要删除的仓库

在被删除仓库页面,点击Repository,再点击Remove

你会看到如下页面,勾选下方选项框的话,会将你的仓库从计算机硬盘中移除;如果不勾选,只会在GitHub desktop(GitHub)上移除。

二,版本控制

2.1更新版本

1,GitHub desktop会自动识别仓库里代码的变动,并且你可选择应用哪些改变。如果你改变了仓库链接的本地仓库文件,你可以在GitHub desktop的主页面上看到如下场景:

我在仓库中新建了‘版本更新.py’文件,并在其中写入了print(’dddd’)代码

2,可以看到左侧栏中出现了changes,你需要在左下角的summary中填入摘记(必填),还可以填入相关描述,填入后,你还需要点击Push origin上传:

3,这时你就可以在GitHub上看到你的仓库发生了变化:

2.2项目回滚

1,你可以在History里看到每一次的版本变化:

2,具体操作:

可以看到版本回到了最开始的样子。

三,分支管理

3.1新建分支

创建分支

3.2切换分支

点击即可

在GitHub desktop选择分支

在GitHub查看与选择分支

3.3合并分支

  1. 首先,在 GitHub Desktop 中打开你要合并的仓库。

  2. 点击左侧导航栏中的“分支”选项卡,找到你要合并的分支。

  3. 选择要合并的分支,右键点击该分支并选择“Merge into current branch”(合并到当前分支)选项。

  4. 确认合并操作,如果有冲突需要手动解决冲突。

  5. 点击“Commit merge”(提交合并)按钮。

  6. 最后点击“Push origin”(推送到远程仓库)按钮,将合并后的代码推送到远程仓库。

3.4删除分支

3.5比较分支

3.6查看提交历史

四,多人协作

  1. 创建GitHub仓库:首先,一个人(通常是项目的负责人)在GitHub上创建一个仓库,并将其与本地项目相关联。
  2. 邀请协作者:负责人可以通过在GitHub仓库的设置中添加协作者来邀请其他人加入项目。在协作者的GitHub帐户上,他们将收到邀请加入项目的通知。

在仓库设置里,点击Collabarators即可

  1. 克隆仓库:协作者使用GitHub Desktop克隆项目的仓库到本地。他们可以选择克隆到自己的计算机上的任意位置。
  2. 进行更改:每个协作者在本地进行代码更改或其他操作。他们可以使用GitHub Desktop的界面进行提交更改。
  3. 提交更改:协作者完成更改后,使用GitHub Desktop提交他们的更改到GitHub仓库。他们可以添加有关更改的说明和描述。
  4. 解决冲突:如果两个或多个协作者在相同的文件的相同行进行了更改,可能会出现冲突。在这种情况下,GitHub Desktop会提醒协作者,让他们解决冲突。协作者可以使用GitHub Desktop提供的冲突解决工具来处理冲突。
  5. 更新本地仓库:协作者可以通过点击GitHub Desktop中的”Pull”按钮来获取最新的更改。这将从GitHub仓库中拉取其他协作者提交的更改并合并到本地仓库。

  1. 推送更改:协作者在本地完成更改后,可以使用GitHub Desktop的”Push”按钮将更改推送到GitHub仓库。这将把他们的更改上传到仓库并使其他协作者可见。

通过这些步骤,多人可以使用GitHub Desktop进行协作开发,并实时共享和同步他们的更改。在整个过程中,GitHub Desktop提供了一个简单直观的界面,帮助协作者进行版本控制和协作。

]]>
+ 一,仓库

1.1新建仓库

1,点击File,再点击new repository。

2,通过新建仓库可以实时的在GitHub和GitHub desktop中创建一个空的仓库,你可以对新建的仓库进行各项设置。

包括仓库名字,仓库描述,仓库本地位置,自动创建readme文件,忽略文件的选择,以及开源许可证的选择。这里介绍后两个的详细内容:

git ignore可以选择忽略文件,如果你有些文件并不想上传,那你就可以将其设置。

以下是一个示例 .gitignore 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13

# Ignore node_modules folder 忽略文件夹
node_modules/

# Ignore build artifacts 忽略目录
build/
dist/
*.log

# Ignore configuration files 忽略文件
.env
config.js

这将忽略 node_modules 文件夹、build 和 dist 目录、所有以 .log 结尾的文件以及 .env 和 config.js 文件。

license为许可证设置,设置许可证的目的是为了让别人可以合理合法地使用与修改我们的代码,有多种许可证可以选择,它们具有不同的权限设置。

总结一下,MIT 最自由,简直就是没有任何限制,任何人都可以售卖我的软件,甚至可以用我的名字促销。BSD 和 Apache 协议也很自由,跟 MIT 的区别分别是不允许用作者本人名义促销和保护作者版权。GPL 可以说最霸道,对代码的修改部分也必须是 GPL 的,同时基于 GPL 代码而开发的代码也必须按照 GPL 发布,而 MPL ,也就是 Mozilla Public License 就温和一些,如果后续开发的代码中添加了新文件,同时新文件中也没有用到原来的代码,那么新文件可以不必继续沿用 MPL 。【如何为自己的 Github 项目选择开源许可证? - 知乎 (zhihu.com)

3,当你完成了前两步,你还需要点击Publish repository来上传仓库,并设置仓库是否公开(这很重要!)

1.2添加本地仓库

1,点击File,再点击Ddd local repository。

2,输入本地文件地址,但如果你的文件未初始化为git仓库,则需要点击create a repository来新建一个仓库(作用是将选定的文件初始化为git仓库)

3,点击后则与上面一样,进行各种参数填充。

1.3克隆仓库

1,点击File,再点击Clone repository。

2,选择需要克隆的仓库,如果你是要克隆别人的仓库,可以选择URL

1.4编辑仓库

1.5删除仓库

如果你想切断GitHub与本地库的连接,你可以执行以下操作:

  1. 删除本地库中的.git文件夹(这是一个隐藏文件夹,你需要启用显示隐藏文件夹选项)

  2. 如果你想从GitHub上删除该库,你可以在GitHub上进入该库,点击“Settings”,然后在“Danger Zone”中点击“Delete this repository”。

这里推荐使用GitHub desktop进行删除操作:

右击需要删除的仓库

在被删除仓库页面,点击Repository,再点击Remove

你会看到如下页面,勾选下方选项框的话,会将你的仓库从计算机硬盘中移除;如果不勾选,只会在GitHub desktop(GitHub)上移除。

二,版本控制

2.1更新版本

1,GitHub desktop会自动识别仓库里代码的变动,并且你可选择应用哪些改变。如果你改变了仓库链接的本地仓库文件,你可以在GitHub desktop的主页面上看到如下场景:

我在仓库中新建了‘版本更新.py’文件,并在其中写入了print(’dddd’)代码

2,可以看到左侧栏中出现了changes,你需要在左下角的summary中填入摘记(必填),还可以填入相关描述,填入后,你还需要点击Push origin上传:

3,这时你就可以在GitHub上看到你的仓库发生了变化:

2.2项目回滚

1,你可以在History里看到每一次的版本变化:

2,具体操作:

可以看到版本回到了最开始的样子。

三,分支管理

3.1新建分支

创建分支

3.2切换分支

点击即可

在GitHub desktop选择分支

在GitHub查看与选择分支

3.3合并分支

  1. 首先,在 GitHub Desktop 中打开你要合并的仓库。

  2. 点击左侧导航栏中的“分支”选项卡,找到你要合并的分支。

  3. 选择要合并的分支,右键点击该分支并选择“Merge into current branch”(合并到当前分支)选项。

  4. 确认合并操作,如果有冲突需要手动解决冲突。

  5. 点击“Commit merge”(提交合并)按钮。

  6. 最后点击“Push origin”(推送到远程仓库)按钮,将合并后的代码推送到远程仓库。

3.4删除分支

3.5比较分支

3.6查看提交历史

四,多人协作

  1. 创建GitHub仓库:首先,一个人(通常是项目的负责人)在GitHub上创建一个仓库,并将其与本地项目相关联。
  2. 邀请协作者:负责人可以通过在GitHub仓库的设置中添加协作者来邀请其他人加入项目。在协作者的GitHub帐户上,他们将收到邀请加入项目的通知。

在仓库设置里,点击Collabarators即可

  1. 克隆仓库:协作者使用GitHub Desktop克隆项目的仓库到本地。他们可以选择克隆到自己的计算机上的任意位置。
  2. 进行更改:每个协作者在本地进行代码更改或其他操作。他们可以使用GitHub Desktop的界面进行提交更改。
  3. 提交更改:协作者完成更改后,使用GitHub Desktop提交他们的更改到GitHub仓库。他们可以添加有关更改的说明和描述。
  4. 解决冲突:如果两个或多个协作者在相同的文件的相同行进行了更改,可能会出现冲突。在这种情况下,GitHub Desktop会提醒协作者,让他们解决冲突。协作者可以使用GitHub Desktop提供的冲突解决工具来处理冲突。
  5. 更新本地仓库:协作者可以通过点击GitHub Desktop中的”Pull”按钮来获取最新的更改。这将从GitHub仓库中拉取其他协作者提交的更改并合并到本地仓库。

  1. 推送更改:协作者在本地完成更改后,可以使用GitHub Desktop的”Push”按钮将更改推送到GitHub仓库。这将把他们的更改上传到仓库并使其他协作者可见。

通过这些步骤,多人可以使用GitHub Desktop进行协作开发,并实时共享和同步他们的更改。在整个过程中,GitHub Desktop提供了一个简单直观的界面,帮助协作者进行版本控制和协作。

]]>
diff --git a/sw-register.js b/sw-register.js index d293dcb..026f2e4 100644 --- a/sw-register.js +++ b/sw-register.js @@ -1 +1 @@ -navigator.serviceWorker&&navigator.serviceWorker.register('/sw.js?v=20240112212716').then(function(){navigator.serviceWorker.addEventListener('message',function(a){if('sw.update'===a.data){let a=document.querySelector('meta[name=theme-color]'),b=document.createElement('div');a&&(a.content='#000'),b.innerHTML='

\u64cd\u4f5c\u901a\u77e5

\u5df2\u66f4\u65b0\u6700\u65b0\u7248\u672c\uff08\u5237\u65b0\u751f\u6548\uff09
×
',document.body.appendChild(b),setTimeout(function(){document.getElementById('app-refresh').className+=' app-refresh-show'},16)}})}); \ No newline at end of file +navigator.serviceWorker&&navigator.serviceWorker.register('/sw.js?v=20240112213303').then(function(){navigator.serviceWorker.addEventListener('message',function(a){if('sw.update'===a.data){let a=document.querySelector('meta[name=theme-color]'),b=document.createElement('div');a&&(a.content='#000'),b.innerHTML='

\u64cd\u4f5c\u901a\u77e5

\u5df2\u66f4\u65b0\u6700\u65b0\u7248\u672c\uff08\u5237\u65b0\u751f\u6548\uff09
×
',document.body.appendChild(b),setTimeout(function(){document.getElementById('app-refresh').className+=' app-refresh-show'},16)}})}); \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 4863bad..1e54767 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1 +1,14 @@ -标签 - 马锦的博客
\ No newline at end of file +标签 - 马锦的博客
+ + \ No newline at end of file