选自GitHub.io 作者:Rachel Carmena 机器之心编译 参与:李诗萌、路雪 本文主题是如何向工具初学者介绍分布式版本控制系统 Git。...未追踪文件:因为尚未添加因此 Git 不知道的文件。 更新远程版本库 ? 当工作区更改就绪时,必须先把它们添加到暂存区中。...当暂存区中有一组特定的更改时,我们就需要在本地库中创建带有这些特定信息的 commit。...当本地版本库中有一或多个准备和世界其他地方共享的 commit 时,我们必须把它们 push 到远程版本库中。...此外,你还可以解释: 如何显示工作区的文件更改:git diff 如何显示暂存区的文件更改:git diff –staged 在将文件添加到暂存区后,如何在工作区中更改文件 等等 更新开发环境 抓取(fetch
在复制版本库时,远程版本库中的数据要传递到两个区域: 工作区 本地版本库 在工作区中进行更改 ? 工作区中有两类文件: 追踪文件:Git 知道的文件。...未追踪文件:因为尚未添加因此 Git 不知道的文件。 更新远程版本库 ? 当工作区更改就绪时,必须先把它们添加到暂存区中。...当暂存区中有一组特定的更改时,我们就需要在本地库中创建带有这些特定信息的 commit。...当本地版本库中有一或多个准备和世界其他地方共享的 commit 时,我们必须把它们 push 到远程版本库中。...此外,你还可以解释: 如何显示工作区的文件更改:git diff 如何显示暂存区的文件更改:git diff –staged 在将文件添加到暂存区后,如何在工作区中更改文件 等等 更新开发环境 抓取(fetch
基于docsify+github+typora构建个人知识库 docsify,一款神奇的文档网站生成器,可以快速生成文档网站。...文档更新、本地预览 # 编辑index.html文件,更新文档内容 # 本地预览 docsify serve docs 手动初始化 创建项目构建本地存档,手动生成index.html,构建内容如下所示...编辑+github管理的概念,对于图片资源的管理也是基于assets资源文件夹引用的方式处理(考虑到资源安全性和第三方的不可预测性,所以没有选择基于图床的方式存储资源,而是在md文件基础上构建一个同名的....assets文件夹存储图片资源),在hexo项目构建笔记迁移的时候对于图片资源的处理暂时没有一个比较友好的方案(如果是采用本地引用的方式则可能导致项目后期维护、迭代的问题,hexo项目推荐使用图床方式加载图片资源...访问当对应子仓库的内容
集群和结果存储模块实现大规模文件的高效处理。...,然后输入上述命令,用于在指定文件夹下初始化一个本地网站。...scaffolds :模版文件夹。当您新建文章时,Hexo 会根据 scaffold 来创建文件。Hexo 的模板是指在新建的文章文件中默认填充的内容。...若要发布用户站点,必须创建名为 .github.io 的个人帐户拥有的存储库。组织 :组织站点连接到 github.com 上的特定帐户。...若要发布组织站点,必须创建名为 .github.io 的组织帐户拥有的存储库。
: index.html 集成 github 网站 本教程的电子书源码和输出文件均托管到 github 网站,所以这里介绍下如何利用 Github Pages 静态网页服务与 gitbook 进行集成...其中,网站项目的源码直接托管在 github 仓库中,当仓库文件更新后,该仓库所关联的网站自动更新,从而实现了源码与官网的联动更新. ?...还是克隆到本地创建 index.html ,最终的 .github.io 仓库一定要有 index.html 首页文件....# 添加到本地版本库 $ git add . $ git commit -m "publish" # 推送到远程仓库 $ git push origin master 现在登录 github 网站看一下静态网站是否成功上传以及访问主页站点或项目站点看一下最新内容是否成功渲染吧...除此之外,还讲解了如何与 github pages 进行结合,从而实现源码和网站的自动更新维护.
此时,请先通过 cd 进入你本地电脑打算存储网站代码的文件夹目录。...自定义主题配置 当启动时,会使用主题的默认配置。但这不一定是你想要的。 所以你可以对主题进行一些自定义。 主题的配置文件放在 themes/yun/_config.yml 文件中。...所以我们最好新建一个 hexo 分支(命名无所谓)用来存储 Hexo 地源代码,master 分支则用来存储部署后的静态文件。...没有视频,一是懒,二是文字更利于更新勘误。 以及文章中将会频繁出现参考链接,更方便使用。 如何绑定你的自定义域名? 首先,你得有个自己的域名。 避免广告嫌疑,你可以自行前往相关域名提供商购买。...永远相信美好的事情即将发生 如果是更通用的问题,最好在评论中进行反馈,这样别的同学也能看到,不需要重复提问。 --- Q.E.D.
配置文件中,通过设定post_asset_folder为true,开启资源文件的管理功能:当资源文件管理功能打开后,Hexo将会在你每一次通过 hexo new [layout] 命令创建新文章时自动创建一个与对应文章文件同名的资源文件夹...参数 描述 默认值 layout 布局 title 标题 文章的文件名 date 建立日期 文件建立日期 updated 更新日期 文件更新日期 comments 开启文章的评论功能 true tags...,从而可通过子目录的方式访问博客信息 需注意的是此处发布子目录的概念不是在原有的github.io仓库下新增子目录存放文件信息,而是借助github.io平台自动转到相应的子仓库 本地访问路径...index.md 站点源文件存储路径 存储在对应仓库:.github.io.github.io 存储在自定义子仓库: 访问 http(s)://.github.iohttp(s)://.github.io...http(s)://.github.io/http(s)://.github.io/ 说明 对应仓库存储,根据实际情况通过xxx.github.io直接访问 有两种方式特殊处理:方式1:直接通过xxx.github.io
Web 缓存大致可以分为:数据库缓存、服务器端缓存(代理服务器缓存、CDN 缓存)、浏览器缓存。...当内容发生改变时就必须移除失效的内容。 机制 策略 1)缓存存储策略 缓存存储策略决定了客户端是否应该存储 http 的 response 。...,如未过期则可以直接使用本地存储的数据,否则就需要发请求到服务端尝试重新获取数据。...关于 last-modified 和 Etag 区别 • 某些服务器不能精确得到资源的最后修改时间,这样就无法通过最后修改时间判断资源是否更新。 • Last-modified 只能精确到秒。...一般来说文件内容改变了,会更新版本号、 hash 值,相当于请求另一个文件。 标准中规定 max-age 的值最大不超过一年,所以设成 max-age=31536000 。
当然也可以直接使用安装时自带的Git Bash,个人更喜欢用Git Bash。...在本地关联GitHub的站点仓库 在本地创建一个新的文件夹,比如名为hugo-deploy。...然后就是最后一步了,把我们刚刚提交到本地库的文件给推送到远程库。...由于远程库刚刚创建,还不存在本地的分支(默认是master分支),所以第一次提交的命令要加是一个-u参数: 1 git push -u origin master 这样GitHub远程库上会创建出对应的...参考链接 Hugo Front Matter Hugo Quick Start Install Hugo Directory Structure Explained Git的使用–如何将本地项目上传到Github
我们取某一个时间节点来看,项目的最新状态确实是分布式地存储在团队各个成员的本地仓库中的。 二、为什么要用Git? 备份文件 有没有人会担心突然哪一天电脑坏掉了,不能用了呢?...当John完成工作时,通知Jack拉取项目更新,在拉取过程中, Git会自动合并双方的修改为一体,如果项目成员的修改发生冲突(比如修改同一处),Git 允许你手动选择使用什么内容来填充冲突处。...在文件内容发生修改时,Git会将发生修改的部分划分为区块进行记录,以区块为单位从而实现自动合并。...可是究竟要如何实现呢?...提交项目修改 文件发生修改时,选择想要提交的内容添加到缓冲区 提交缓冲区内容到仓库,Git 会自动生成版本记录、版本号等 可能有人会有疑问,为什么不直接提交修改到仓库呢?
更新记录 2021-01-22 SEO优化说明:文章路径优化、百度/Google/必应等搜索引擎收录 2022-01-13 排查收录问题和数据分析 搜索引擎自定义域名调整:将原有github二级域名替换为自定义域名...我采用的是CNAME验证的方式进行验证,根据提示将指定的记录使用CNAME解析到ziyuan.baidu.com即可(例如使用github二级域名则为code-xxxxxxx.用户名.github.io...find_what: http://xxx.github.io/blog replace_with: https://xxx.com 上述配置完成,执行hexo g指令会生成txt文件存储要推送的连接...generate && hexo deploy自动推送 注意事项 如果使用CI自动部署,则必须在每个页面的front-matter中配置updated属性用于标示hexo修正文章最后更改时间...(如果没有指定,则hexo读取文件属性是以CI自动部署概念git资源clone的时间为参考,从而导致修改时间显示异常) 此外区分本地部署和CI部署,如果是本地部署则需指定BAIDU_TOKEN
一、Android离线数据同步的步骤 在 Android 应用中实现离线数据同步,通常需要以下几个步骤: 数据存储:可以使用 SQLite 数据库、SharedPreferences 或者文件系统来存储用户的数据...例如,可以创建一个 SQLite 数据库来存储用户的笔记,或者使用 SharedPreferences 来存储用户的设置。...当设备连接到网络时,可以开始同步数据。 数据同步:可以使用 HttpUrlConnection 或者 OkHttp 来将本地的数据同步到服务器,同时将服务器的数据同步到本地。...然而,这种策略可能导致本地的数据更改被覆盖。 客户端优先:在这种策略中,当发生冲突时,优先使用客户端(本地)的数据。这种策略适用于离线编辑的场景,因为用户可能在离线时进行了大量更改。...时间戳冲突解决:在这种策略中,当发生冲突时,根据数据的最后修改时间来决定使用客户端还是服务器的数据。这种策略适用于多用户协作编辑的场景,因为它可以确保最近的更改被保留。
Git Status 该命令列出了所有准备好添加到本地存储库的修改文件。 让我们输入命令以查看会发生什么: ? 这表明我有两个文件尚未添加到索引中。...现在,我已经在本地存储库中进行了所需的提交。 请注意,在影响对中央存储库的更改之前,应始终将更改从中央存储库拉到本地存储库,以更新已对中央存储库做出贡献的所有协作者的工作。...现在让我们检查更改是否发生在我的中央存储库中。 ? 为了防止覆盖,当Git在目标存储库中导致non-fast forward merge时,它不允许push。...现在,让我们更进一步,学习如何在Git中进行分支和合并。 分支 Git中的分支不过是指向特定提交的指针,Git通常更喜欢保持其分支尽可能轻量级。 基本上有两种类型的分支,即本地分支和远程跟踪分支。...由于创建多个分支没有存储/内存开销,因此逻辑上划分您的工作比拥有大块的分支更容易。 现在,让我们看看如何使用分支进行提交。 ?
当远程不支持设置修改时间并且需要比仅检查文件大小更准确的同步时,这非常有用。 当在对象上存储相同散列类型的远程之间进行传输时,这非常有用,例如Drive和Swift。...3.49 -u, –update 该参数会强制rclone跳过目标上存在的任何文件,并且修改时间比源文件更新。如果现有目标文件的修改时间与源文件的修改时间相等,则在大小不同时将更新。...不支持MOD时间的云存储上,检查的时间将是上传的时间。这意味着如果上传到其中一个云存储,rclone将跳过目标上存在的任何文件,并且上传的时间比源文件的修改时间更新。...当转移到不直接支持MOD时间的云存储时,这很有用,因为它比–size-only检查更准确,比使用–checksum更快。...通常情况下,本地同步远程数据,只要知道本地文件比服务器文件的时间更新就足够了,因此它可以加快进程并减少所需的API调用次数。
读取资源:当一个用户或线程要读取资源时,会获取当前的版本号或时间戳,并将其保存在本地。 修改资源:当用户或线程要修改资源时,它会检查本地保存的版本号或时间戳与资源当前的版本号或时间戳是否匹配。...另一方面,悲观锁则是一种更保守的并发控制机制,它会在读取资源时立即锁定,以确保不会发生冲突,但可能会降低系统的并发性能。选择哪种锁取决于应用程序的需求和性能要求。...这可以通过数据库中的行级锁、表级锁、文件锁或其他机制来实现,具体取决于应用程序和数据存储方式。 保守策略:悲观锁采用一种保守的策略,即假定并发访问会导致冲突,因此在访问资源时会进行锁定。...事务性:悲观锁通常与事务一起使用,以确保在事务中对资源进行读取和修改时不会被其他事务干扰。 适用场景:悲观锁通常用于资源冲突的概率较高的情况,或者当资源的一致性是至关重要的情况下。...悲观锁:假设在任何时刻都会发生冲突,因此在访问资源之前会将其锁定,以确保只有一个用户或线程能够访问资源。 锁定时机: 乐观锁:在资源访问时不进行锁定,只在提交修改时才检查冲突。
本地配置文件也将配置限制到单个应用程序,但有时在多个应用程序之间共享配置设置会很有用。 示例包括数据库连接字符串、UI 主题信息或一组相关应用程序使用的队列和存储的 URL。...跨多个正在运行的应用程序实例管理本地配置的更改具有挑战性,特别是在云托管方案中。 它可能导致在部署更新的过程中实例使用不同的配置设置。 此外,应用程序和组件的更新可能需要更改配置架构。...例如,存储包含配置信息的 XML 文档将需要配置界面或应用程序分析文档,以便读取各个设置。 它将使更新设置变得更复杂,尽管缓存设置可有助于抵消较慢的读取性能。...请考虑当设置包含错误,或不存在于后备存储中时,配置存储接口的行为方式。 可能返回默认设置并记录错误比较合适。...如果管理员编辑某项设置以更新一个应用程序,则它可能对使用该同一设置的应用程序产生负面影响。 如果应用程序缓存配置信息,则需要在配置更改时警告应用程序。
它可以让我们⾃由控制缓存哪些⽂件、如何匹配缓存、如何读取缓存,并且缓存是持续性的。当 Service Worker 没有命中缓存的时候,需要去调⽤ fetch 函数获取 数据。...服务器在返回资源的时候,头部添加了Etag属性,这个属性时资源生成的唯一标识符,当资源发生改变的时候,这个值也会发生改变。...通过这种方式,比Last-Modified的方式更加精确 当 Last-Modified 和 Etag 属性同时出现的时候,Etag 的优先级更⾼。...如果服务器的静态资源没有更新,那么在下次请求的时候,就直接从本地读取即可,如果服务器的静态资源已经更新,那么我们再次请求的时候,就到服务器拉取新的资源,并保存在本地。...所谓的浏览器缓存指的是浏览器将⽤户请求过的静态资源,存储到电脑本地磁盘中,当浏览器再次访问时,就可以直接从本地加载,不需要再去服务端请求了。
前段时间把 Rafy 的用户手册由 CHM 格式转换为了网页格式,而且发布到了 github.io 上,即方便文档的实时更新,也方便大家查看。...--------------------------------------------------------------------------- 附: 如何使用 github.io 来发布网页版帮助文档...这样,本地还可以直接以提交文件到 github 的形式来更新帮助文档网站内容,非常方便: ?
次级索引会对每个数据条目建立一个索引条目,这给数据库的实现带来了一些问题: 当数据库已有数据时,建立索引,何时针对存量数据构建索引。...当数据库中数据条目发生更改时,如何维护数据和索引的一致性,尤其是多客户端并发修改时。...本地索引的优点是维护方便,在更新数据时,只需要在该分区所在机器同时更新索引即可。...分区均衡(rebalancing) 数据库在运行过程中,数据和机器都会发生一些变化: 查询吞吐增加,需要增加机器以应对增加的负载。 数据集变大,需要增加磁盘和 RAM 来存储增加数据。...加入分区数量等于机器数量,则将来增加机器,仅就单个数据集来说,并不能增加其存储容量和吞吐。 调度粒度更细,数据更容易均衡。
本文发布于135天前,最后更新于133天前,其中的信息可能有所发展或是发生改变。 1. 前言 GitHub为我们的HEXO博客提供了免费的域名,真的是超级方便!...但是以.github.io结尾的域名显得有些冗长了,如果我们喜欢简短、具有自己特色的域名,不妨看看这篇文章,为我们漂亮的HEXO博客绑定一个自己的域名! 2....domain for your GitHub Pages site – GitHub Docs 我们需要在DNS中设置一个CNAME记录,将自定义域名指向yemenghexo.github.io(你的用户名.github.io...): 3.2 本地CNAME文件 完成A记录解析后,我们需要在本地HEXO中的source文件夹下(请一定在source文件夹下创建!)...创建一个CNAME文件(不带任何后缀) 将我们的自定义域名填写进去: 3.3 修改本地config 我们需要修改_config.yml文件,在URL中填入我们的自定义域名: 4.