Git 有许多命令。大多数工作流只使用它们的一小部分。导致问题的部分不是命令本身,而是不知道运行一个命令后你的代码坐在哪里。

工作目录、暂存区、本地仓库、远程仓库。每个命令在这些之间移动代码。这里是每个做什么。

保存你的工作

  • git add:将文件从工作目录移动到暂存区
  • git commit:将这些暂存文件保存到你的本地仓库
  • git push:上传你的提交到远程仓库

获取项目

  • git clone:将整个远程仓库拉取到你的机器
  • git checkout:切换你到特定分支

同步变化

  • git fetch:从远程下载更新但不改变你的文件
  • git merge:集成那些变化
  • git pull:一次做两者

安全网

  • git stash:你的撤销按钮。它临时保存你未提交的变化,所以你可以切换上下文而不丢失工作
  • git stash apply:带回它们
  • git stash pop:带回它们并删除 stash

缓存系统如何出错

下图显示 4 种典型情况缓存可能出错及其解决方案。

1. 惊群问题

当缓存中大量键同时过期时发生。然后查询请求直接击中数据库,使数据库过载。

缓解方法

  • 避免为键设置相同过期时间,在配置中添加随机数
  • 只允许核心业务数据击中数据库,防止非核心数据访问数据库直到缓存恢复

2. 缓存穿透

当键在缓存或数据库中都不存在时发生。应用无法从数据库检索相关数据来更新缓存。这个问题对缓存和数据库都创造许多压力。

解决方案

  • 为不存在键缓存 null 值,避免击中数据库
  • 使用布隆过滤器首先检查键存在,如果键不存在,我们可以避免击中数据库

3. 缓存击穿

这类似于惊群问题。当热键过期时发生。大量请求击中数据库。因为热键占用 80% 查询,我们不为它们设置过期时间。

4. 缓存崩溃

当缓存宕机且所有请求去数据库时发生。有两种方法解决这个问题:

  • 设置断路器,当缓存宕机时,应用服务不能访问缓存或数据库
  • 为缓存设置集群提高缓存可用性

顶级网络攻击解释

大多数攻击遵循一系列步骤。理解每个步骤使更容易发现哪里检测或预防是可能的。

1. 网络钓鱼

攻击者发送假链接指向欺骗登录页面。受害者输入凭证,攻击者捕获它们,并使用它们访问真实系统。

2. 勒索软件

受害者打开恶意附件或文件。勒索软件加密本地数据并要求支付恢复访问。文件保持锁定直到 ransom 支付或备份恢复。

3. 中间人(MitM)

攻击者定位自己在受害者和服务器之间,拦截双向流量。没有一方检测拦截。攻击者可以读取或修改数据当它通过时。

4. SQL 注入

恶意 SQL 插入到输入字段,例如,studentId=117 OR 1=1。数据库执行它为有效查询并返回数据它不应该。单个脆弱输入字段可以暴露整个表。

5. 跨站脚本(XSS)

恶意脚本注入到合法页面。当另一个用户加载那个页面,他们浏览器执行脚本。会话令牌、cookie 和私有数据可以被盗这种方式。

6. 零日漏洞

攻击者发现供应商还没发现的漏洞。没有补丁存在。攻击运行直到供应商识别问题并运输修复,这可以花费几天或几周。

AI 如何生成图像

有两种主要方式现代模型生成图像:自回归和扩散。

自回归模型

生成图像一块一块。

训练期间:图像分割为令牌,模型学习一个接一个预测它们,就像文本。它最小化图像令牌上的下一令牌预测损失。

推理时:模型一次预测一个图像令牌直到完整图像形成。

扩散模型

从纯噪声开始并迭代去噪它。

训练期间:我们添加噪声到真实图像并训练模型预测那个噪声。

推理时:模型从随机噪声开始并迭代去噪它到干净图像。

自回归就像一笔一笔画狗序列。扩散就像从粗糙草图(粗形状)开始,然后逐步添加细节和清理图片。

本文为学习目的的个人翻译,译文仅供参考。

原文链接:EP206: Git Workflow: Essential Commands

版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。