首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

日拱一卒,麻省理工教你学Git,所有工程师必备技能之一

git术语,文件被称为blob,会被视为是一系列字节(byte)。一个文件夹被叫做tree,它存储一系列blob和tree和名称的映射(文件夹可以包含文件夹)。...数据模型的伪代码展示 可能用伪代码的形式表示git数据模型更加清晰: 非常简洁易懂 Objects 和内容寻址 object可以是一个blob、tree或commit: git数据存储当中,所有的...磁盘上,所有记录都以object和引用的方式存储:因为数据模型当中只有这两个概念。所有的git命令都对应commit DAG上的一些操作,比如添加object,添加或更新引用。...相反,如果你做出对commit DAG进行具体的修改,比如抛弃未提交的变更,或者是让master引用指向5d83f9e commit,这通常都是有办法的。... GitHub 您需要使用一个被称作拉取请求(pull request)的方法来向其他项目贡献代码 其他 Git 提供商: GitHub 并不是唯一的。

28630

Realm技术选型初体验

和SQLite不同,它允许你持久层直接和数据对象工作。...Override public void onCreate() { super.onCreate(); Realm.init(this); } } 实操 获取...* * 也可以使用@RealmClass注解来生命数据模型,比如: * * @RealmClass public class User implements RealmModel {...除了简单易用,它有没有一些我们不知道的坑,必须有啊,具体看下以下这篇文章: 说说 Realm Android 上的坑 指明了realm有以下缺点: 线程的限制(realm对象只能被创建它的线程访问...其实还有增加包大小的问题(可以通过split abi来减少包大小) 总结 本篇文章,只是粗略了介绍了Realm的用法,还需要更加深入去使用才能决定是否使用到项目中,技术选型,除了简单易用还要考虑是否适合自己的场景

70310
您找到你想要的搜索结果了吗?
是的
没有找到

牛逼的Git!!!!!!!

Git 将顶级目录的文件和文件夹称作集合,并通过一系列快照来管理历史记录。 Git 的术语,文件被称为 blob 对象(数据对象),也就是一组数据。... Git ,历史记录是一个由快照组成的有向无环图。“有向无环图”,听起来很高大上,但其实并不难理解。我们只需要知道这代表 Git 的每个快照都有一系列的父辈,也就是之前的一系列快照。... Git ,当前的位置有一个特殊的索引,它就是“HEAD”。 硬盘上,Git 仅存储对象和引用,因为其数据模型仅包含这些东西。所有的 git 命令都对应着对 commit 树的操作。...Git 还包含了一个和数据模型完全不行管的概念,叫做“暂存区”,它运行我们指定下次快照要包含哪些改动。...先从跟上理解了 Git 的数据模型,然后执行命令的时候去思考这些命令是如何操作数目模型的,就会不那么枯燥了。

57330

从零开始学web安全(2)

这时候我突然想到之前我测试的 这个payload的onerror也被过滤了,几乎是一样的情形。...发现线索3过滤on还是比较致命的,好像并没有办法绕开这个过滤。但是线索4似乎有机会啊!...不幸的是,form黑名单里面,查看DOM,变成了这样: ? ok,到这一步的时候,有一个思路是怎么绕过form被过滤成字符串的代码。纠结了一下,我没有想到好的办法可行。...直接把页面现成的form用formaction进行劫持是不是就可以了! 兴奋之余,我赶紧搜索了一下关键词form,果然找到一个form表单! ? 遗憾的是。。...有没有办法提交字符串的时候让xlink:href没有敏感的东西,后续再把它设置回去呢。答案是有的!

50630

从零开始学web安全(2)

这时候我突然想到之前我测试的 这个payload的onerror也被过滤了,几乎是一样的情形。...发现线索3过滤on还是比较致命的,好像并没有办法绕开这个过滤。但是线索4似乎有机会啊!...不幸的是,form黑名单里面,查看DOM,变成了这样: ? ok,到这一步的时候,有一个思路是怎么绕过form被过滤成字符串的代码。纠结了一下,我没有想到好的办法可行。...直接把页面现成的form用formaction进行劫持是不是就可以了! 兴奋之余,我赶紧搜索了一下关键词form,果然找到一个form表单! ? 遗憾的是。。...有没有办法提交字符串的时候让xlink:href没有敏感的东西,后续再把它设置回去呢。答案是有的!

1K60

终于有人把 Git 的数据模型讲清楚了!

上一篇,我们讲了 Git 的前世今生,神——Linus 10 天内就创造了 Git 的第一版,这一篇,我们来探究一下 Git 的数据模型。...快照 Git 将顶级目录的文件和文件夹称作集合,并通过一系列快照来管理历史记录。 Git 的术语,文件被称为 blob 对象(数据对象),也就是一组数据。... Git ,历史记录是一个由快照组成的有向无环图。“有向无环图”,听起来很高大上,但其实并不难理解。我们只需要知道这代表 Git 的每个快照都有一系列的父辈,也就是之前的一系列快照。...第三次 commit 之后,历史记录分叉成了两条独立的分支,这可能是因为要同时开发两个不同的特性,它们之间是相互独立的。... Git ,当前的位置有一个特殊的索引,它就是“HEAD”。 仓库 我们可以粗略地给出 Git 仓库的定义了:对象 和 引用。 硬盘上,Git 仅存储对象和引用,因为其数据模型仅包含这些东西。

66220

实战审计某BC站源码,并拿下权限

源码的获取来源我就不透露了,找下载这种源码的站,想办法把卖源码的站撸了,然后免费下载就完事了 目标站点使用的源码就是下面这套,名字就不透露了,主要分享审计思路和渗透思路 ?...=1.js> 就我上面的payload,都没带地址,就超过20了,并且script全局过滤方法checkSqlKey里出现了,可以用别的payload <img src=x onerror...会有大概这样的一个图标,于是继续找有没有更好的办法,没有就只能用这个了 然后找到了mobile.php ?...就老老实实的 把img标签给隐藏下,增加下隐蔽性 最终,通过手机端注册,昵称处打入xss的payload,然后想办法让管理员看到...可以看到变成了& 那么有没有别的办法能执行我们的办法呢 这里说一下,一个|的作用 echo 1|echo 2 ?

2.6K20

第23篇:XSS绕过防护盲打某SRC官网后台

4 对于事件属性附近的拦截绕过 接下来为了能够利用XSS漏洞拿到权限,就必须想办法让上述XSS攻击代码能够加载远程js文件,以备实现获取Cookie、添加管理员账号等功能。...x70t:alert(111)> 直接用burpsuite抓包提交是不行的,因为&会与POST请求数据包的...最终看了一下XSS平台给出的payload语句,结合javascript为协议,组合成可真正获取Cookie的测试payload如下: <image/src=| onerror = javascript...难道我们就没有办法了吗?经过一系列查找资料,还是有办法解决的,使用XSS隧道,或者XSS代理。 7 XSS 隧道代理 这个工具大概暂时只是概念性质的,我当时测试的效果是非常不好用。...到目前还没有找到一个靠谱的XSS Proxy代理工具,所以这是一种解决方案,但是没法用于实战,不知道现在网上有没有出新的靠谱的工具。 至此,一条曲折的XSS实战利用道路就完成了,收获不少。

76430

信不信,7 张图就能让你把 Git 分支管理拿捏的死死的。。

如果你不加注意,很可能会留下一个枝节蔓生、四处开放的版本库,到处都是分支,完全看不出主干发展的脉络。 那有没有一个好的分支策略呢?答案当然是有的。...它是自动建立的,版本库初始化以后,默认就是分支进行开发。 二、开发分支Develop 主分支只用来发布重大版本,日常开发应该在另一条分支上完成。我们把开发用的分支,叫做Develop。...使用--no-ff参数后,会执行正常合并,Master分支上生成一个新节点。为了保证版本演进的清晰,我们希望采用这种做法。...07/git.html 为了把 Git 这条线学好,建议大家把前面 5 个章节回顾一下: 可能是 Git 历史上最伟大的一次代码提交 终于有人把 Git 的数据模型讲清楚了 昨晚看完 Linus 第一次提交的...由于公众号的文章发布后不能修改,也没办法加个统一的目录作为索引页,所以二哥就把《Java 程序员进阶之路》的系列文章开源到了 GitHub(点击阅读原文可以直接跳转): https://github.com

58121

Python爬虫系列(三)多线程爬取斗图网站(皮皮虾,我们上车)

每一,我们可以看到大致有10个套图(套图点击之后是套图里面的具体图片,大致每个套图里有9张表情图),分别放在class为.list-group-item的a标签里,详情如下面的两张图片: 套图位置...) onerror属性 img的src地址 其次:爬取思路(关键) 第一步分析网站准备工作之后,我们思考下:怎么实现多页爬取?...为了实现思路清晰,我们将每个模块封装成函数,下面相关代码模块: (我还不知道简书怎么加入代码框,有没有大佬可以告诉我) 引入模块 (1)获取一个网页的源码 url地址是指每一页的地址,等会用format...属性内容 图片所在div 获取onerror内容 这里解释下这段代码:一页中有10个套图,然后每个套图中有9个图片,所以我们在这里获得的items有90个(图片所在的div),然后我们每一个items...获取onerror里的内容,以便(4)步的start_save_img()调用 (4)利用正则获取onerror内容里的图片src地址,然后用多线程实现下载图片 多线程下载图片 首先解释下 start_save_img

1.3K60

开发一个可维护的程序

Model 是数据模型,业务逻辑和业务规则,一般成品后不会改变,比如博客里的文章,注意发布、回收、评论等虽然也是对数据的操作,但也被归到 model 里面,一般表现为类的方法。...但仅限于获取用户请求数据,不应该对数据有任何操作或预处理,这些工作应该交由Models来完成。当涉及到多个Model时,有关的逻辑应当交给Model来完成。...如果要重构,完成或放弃还在做的 feature 分支。 unittest 是什么? 单元测试是一堆测试断言,用来测试程序的接口有没有问题。 为什么要用 unittest?...因为测试驱动的开发能让你没开发一个新功能之后,方便地知道有没有引入新的 bug。 要怎么用 unittest?...每个测试都必须是独立的,一个测试里有自己的上下文,测试的通过与否不应该受到其他测试的影响。 每次开发新功能都必须通过单元测试。

54440

渗透实例 | 记录一次XSS渗透过程

使用的XSS代码: ?...https://xss8.cc/3Ri4> 这条代码比上面平台给的XSS代码的多了几个 “\”,也就是转义字符,利用转义字符可以绕过该平台的策略,因为经验不足,所以在这一步尝试了很多种办法都没能绕过...加上转义字符成功插入后,刷新目标网站与XSS平台页面,XSS平台就能看到刚才的访问记录。 ?...这里可以获取该登陆用户的Cookie、User-Agent、IP地址什么的,但是触发这个XSS需要登陆存在XSS的账号才行,所以个人觉着知道了这个Cookie也没啥用。...并且虽然知道这里存在XSS,但是触发条件是需要知道用户名和密码,然后来到收货地址页面,所以个人感觉作用不大,因此在想这个漏洞还有没有其他的利用价值,后续或许会继续更新本次渗透过程,如果你有什么好的想法,

99220

Django小总结

查看所有分支 git branch 创建分支dev1 git branch dev1 切换分支 git checkout dev1 切换到主分支 git checkout master 将dev1...git checkout -b dev2 备注:合并和删除可以同一行写多个分支 1.为什么要使用虚拟环境?...4.数据库将数据返回给数据模型 5.数据模型将数据库返回的数据发送给控制器 6.控制器连接到视图,便于用户查看 7.视图将数据处理成用户可识别的返回给控制器 8.控制器返回给用户视图处理过的数据...解决思想:你有没有装mysql客户端 解决:pip install pymysql __init__添加了 import pymysql pymysql.pymysql.install_as_MySQLdb...写入 应用目录下的urls的路由中写入name属性 然后模板中去除url的硬编码 模板如何使用静态资源 首先先去 主项目的setting文件配置一个 文件目录 然后根目录同级 创建一个 static

1K20

图片错误自动重载

1 简单描述 先简单说一下基本的处理 每一个 img 加载失败后重新加载最多3次,超过3次就 换上默认图片 因为我们引入我们js 或者 直出的时候,页面已经有 img 元素加载了所以我们需要对已经存在的...我们可以全局监听一个 error 事件,并且 事件回调 判断元素是 img 才进行处理 那么具体是怎么做呢 document.body.addEventListener( 第三个参数useCapture...不过既然不会冒泡,我们只能使用捕获保证先执行父级元素事件 4 处理图片错误 好了,上面说完了两条处理分支,现在来说一下共同的错误处理分支 我们的原则是 1、不处理懒加载图片 2、图片加载未超过3次,重载图片...做法是,只要重载之后,图片链接后面拼上一个参数 reloadcounts = 1继续重载,参数值就获取+1 如果次数超过3,那么就使用默认图片 具体代码如下 // 给图片 url 加上 重载次数参数...可以像这样 obseverImg(docuemnt.body) 但是有时不会是这样,因为不会全局使用一张默认图片的 所以这里支持传入 目标dom 元素,只处理部分 img 4 总结 通常在我们的应用

1.4K20

Git 看这一篇就够了

那接着看吧~ Git 的数据模型 1. 什么是快照 (snapshot) 呢? 首先我们来学两个 Git 的术语: blob, 就是单个的文件; tree, 就是一个文件夹。...我们「拓扑」那篇文章里讲过,忘了的小伙伴快去公众号内回复「拓扑」获取拓扑的入门文章吧~ ?...工作区:就是你本地实际写代码的地方,无论你是用 vim 直接改也好,还是 IDE 里写,都无所谓。 对应的文件状态是:modified,已修改,但还没保存到数据库。 暂存区:就是临时存放的地方。...合并分支: $ git merge 而合并时就可能会有冲突,什么时候会有冲突呢?: 同一个文件的同一个位置修改时。...因为 Git 会努力的把你们改动不同的地方合并在一起,但如果实在是同一个地方改的,那它也没办法了,只能留给程序员去手动处理了。

64120

看完这篇,还不会 Git 的话,我就 ......

那接着看吧~ Git 的数据模型 1. 什么是快照 (snapshot) 呢? 首先我们来学两个 Git 的术语: blob, 就是单个的文件; tree, 就是一个文件夹。...我们「拓扑」那篇文章里讲过,忘了的小伙伴快去公众号内回复「拓扑」获取拓扑的入门文章吧~ ?...工作区:就是你本地实际写代码的地方,无论你是用 vim 直接改也好,还是 IDE 里写,都无所谓。 对应的文件状态是:modified,已修改,但还没保存到数据库。 暂存区:就是临时存放的地方。...合并分支: $ git merge 而合并时就可能会有冲突,什么时候会有冲突呢?: 同一个文件的同一个位置修改时。...因为 Git 会努力的把你们改动不同的地方合并在一起,但如果实在是同一个地方改的,那它也没办法了,只能留给程序员去手动处理了。

46230

12个常用的Git命令,赶紧记一波!

那接着看吧~ Git 的数据模型 1. 什么是快照 (snapshot) 呢? 首先我们来学两个 Git 的术语: blob, 就是单个的文件; tree, 就是一个文件夹。...我们「拓扑」那篇文章里讲过,忘了的小伙伴快去公众号内回复「拓扑」获取拓扑的入门文章吧~ ?...工作区:就是你本地实际写代码的地方,无论你是用 vim 直接改也好,还是 IDE 里写,都无所谓。 对应的文件状态是:modified,已修改,但还没保存到数据库。 暂存区:就是临时存放的地方。...合并分支: $ git merge 而合并时就可能会有冲突,什么时候会有冲突呢?: 同一个文件的同一个位置修改时。...因为 Git 会努力的把你们改动不同的地方合并在一起,但如果实在是同一个地方改的,那它也没办法了,只能留给程序员去手动处理了。

59021

造一个 react-error-boundary 轮子

第三步:添加重置回调 有时候会遇到这种情况:服务器突然抽风了,503、502了,前端获取不到响应,这时候某个组件报错了,但是过一会又正常了。...={onError}       >                        ) } 上面例子 onReset 里自定义想要重试的逻辑...还有没有问题呢?嗯,还有问题。...还有没有更好的设计呢?我们观察到只有一些比较“严重的异常”浏览器才会报错,比如开头提到的 TypeError: xxx is not a function。...既然开发者们有办法拿到这些错误,那把错误直接抛出就可以让 ErrorBoundary catch 到了: 有错误的时候,开发者自己调用 handleError(error) 将错误传入函数; handleError

81310

从零开始搭建前端数据监控系统(二)-前端性能监控方案调研

使用注入代码监控无法获取解析html文档之前的时间信息,目前普遍使用的白屏时间统计方案是html文档的head中所有的静态资源以及内嵌脚本/样式之前记录一个时间点,head最底部记录另一个时间点,两者的差值作为白屏时间...这里我们只介绍performance.getEntries方法,它可以获取页面每个静态资源的请求,如下: ?...3.2 window.onerror捕获 这种方式不需要开发人员代码书写大量的try...catch,通过给window添加onerror监听,js发生异常的时候便可以捕获到错误信息,语法异常和运行异常均可被捕获到...那么跨域JS文件中发生异常的时候,onerror监听会捕获到什么信息呢?请看下图: ? 只有一个稍微有价值的信息Script error,其他什么信息都没有,为什么会这样呢?...但是即使script标签可以请求到异域的js文件,此文件的信息也并不能暴露到当前域内,这也是浏览器的安全措施所致。 那么有没有办法获取到异域资源的异常信息呢?

2.4K50
领券