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。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。