时隔一个星期, 当我再次完成开发之后, 准备将代码上传, 却出现了一个上传代码的错误, 记录一下错误和解决方案
解决方案:
git fsck --full
(base) ifeng@ubuntu:~/Desktop/luffycity$ git fsck --full
error: 对象文件 .git/objects/c9/e590416bbe286dc32a17ddf14670ebb52e4520 为空
error: 对象文件 .git/objects/c9/e590416bbe286dc32a17ddf14670ebb52e4520 为空
fatal: 松散对象 c9e590416bbe286dc32a17ddf14670ebb52e4520(保存在 .git/objects/c9/e590416bbe286dc32a17ddf14670ebb52e4520)已损坏
(base) ifeng@ubuntu:~/Desktop/luffycity$ cd .git
(base) ifeng@ubuntu:~/Desktop/luffycity/.git$ find . -type f -empty -delete -print
./FETCH_HEAD
./objects/cd/cd1a2512ad47d7e2290b02a2a77ea79277e7c9
./objects/c9/e590416bbe286dc32a17ddf14670ebb52e4520
./objects/6a/871d8bf9b841b8febcc3a4c7c6c17ac9557a79
./objects/82/01d128f3356e1cbe2c2413ff422c53974b80db
./objects/2c/cdc2e45330ea23f1fb2f1cf133c7e9dc54680b
./objects/2c/65cffca3b6403b675f19701f41e64f3166401f
./objects/71/420f984a2d039563d7b80cb295f37e55b45ad3
git fsck --full
, 还是有错,head指向元素不存在,是之前一个空文件,我们已经删了(base) ifeng@ubuntu:~/Desktop/luffycity/.git$ git fsck --full
正在检查对象目录: 100% (256/256), 完成.
error: refs/heads/feature/user:无效的 sha1 指针 c9e590416bbe286dc32a17ddf14670ebb52e4520
error: refs/remotes/origin/feature/user:无效的 sha1 指针 c9e590416bbe286dc32a17ddf14670ebb52e4520
error: HEAD:无效的 sha1 指针 c9e590416bbe286dc32a17ddf14670ebb52e4520
error: 71420f984a2d039563d7b80cb295f37e55b45ad3:cache-tree 中无效的 sha1 指针
悬空 blob 38fae659ca427cf6d82705f281bd6549bb3bef41
悬空 tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
悬空 blob a517beeb35b0c70cd4b361ec6e085e58ef47c225
tail -n 2 .git/logs/refs/heads/feature/user
, 后面的部分就是上面信息的路径(base) ifeng@ubuntu:~/Desktop/luffycity$ tail -n 2 .git/logs/refs/heads/feature/user
03f77f97f3f2f687186f74b7ceaee4e9c6103dde 377adde104760d582bf76985a95f5c2262491b1c ifeng <ifeng190410@gmail.com> 1684228848 +0800 commit: feature: 注册功能实现流程-客户端请求发送短信并实现短信倒计时冷却提示!
git show 377adde104760d582bf76985a95f5c2262491b1c
(base) ifeng@ubuntu:~/Desktop/luffycity$ git show 377adde104760d582bf76985a95f5c2262491b1c
可以看到内容是正常的
那么我们就重新设置head, 使其指向倒数第二条git update-ref HEAD 377adde104760d582bf76985a95f5c2262491b1c
最后我们git push的时候发现还是有错
(base) ifeng@ubuntu:~/Desktop/luffycity$ git push origin feature/user
error: refs/remotes/origin/feature/user 没有指向一个有效的对象!
error: refs/remotes/origin/feature/user 没有指向一个有效的对象!
To gitee.com:i__feng/luffycity.git
! [rejected] feature/user -> feature/user (fetch first)
error: 无法推送一些引用到 'git@gitee.com:i__feng/luffycity.git'
提示:更新被拒绝,因为远程仓库包含您本地尚不存在的提交。这通常是因为另外
提示:一个仓库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更
提示:(如 'git pull ...')。
提示:详见 'git push --help' 中的 'Note about fast-forwards' 小节。
根据错误提示执行git pull origin feature/user
我们从远程仓库自动合并feature/user
(base) ifeng@ubuntu:~/Desktop/luffycity$ git pull origin feature/user
来自 gitee.com:i__feng/luffycity
* branch feature/user -> FETCH_HEAD
自动合并 luffycityapi/luffycityapi/apps/users/serializers.py
Merge made by the 'recursive' strategy.
(base) ifeng@ubuntu:~/Desktop/luffycity$ git push origin feature/user
枚举对象中: 28, 完成.
对象计数中: 100% (27/27), 完成.
使用 4 个线程进行压缩
压缩对象中: 100% (13/13), 完成.
写入对象中: 100% (14/14), 2.16 KiB | 736.00 KiB/s, 完成.
总共 14 (差异 6),复用 0 (差异 0)
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:i__feng/luffycity.git
c9e5904..ff1c1a9 feature/user -> feature/user
本文来自博客园,作者:{Max},仅供学习和参考
冒泡排序(Bubblesort)是最经典的排序算法一、算法描述他的排序思想是这样的,依次比较相邻的数据,将小数据放在前,大数据放在后;即第一趟先比较第1个和第2个数,大数在后,小数在前,再比较第2个数与第3个数,大数在后,小数在前,以此类推第一趟将最大的数"滚动"到最后一个位置;第二趟则将次大的数滚动到倒数第二个位置......第n-1(n为无序数据的个数)趟即能完成排序。例如:我们将[593614]这些数字按照从小到大的顺序排序。步骤两两比较相邻的数字,左边比右边大就把这两个数字进行交换。1.比如一开始排序的时候我们拿5和9进行比较,因为5比9小所以不做交换。2.接下来我们对数字9和3做比较,因为9大于3所以我们对他进行交换,变成[539614]3.接下来我们对9和6进行比较,因为9大于6所以我们对他进行交换,变成[536914]4.接下来我们对9和1进行比较,因为9大于1所以我们对他进行交换,变成[536194]5.最后一次我们对剩下的9和4进行比较,因为9大于4所以我们对他进行交换,变成[536149]这就完成了一趟排序,一趟用就是把当前的最大值放在最后面,我
在本教程中,我们对高阶网络上新兴的信号处理主题提供了有说服力的处理。从离散信号和图形信号处理中得出类比,我们介绍了用于处理简单复数和超图上的数据的构造块,这两个常见的高阶网络抽象可以并入多元关系。我们提供了简单复形和超图的简要介绍,并特别强调了处理这些结构所支持的信号所需的概念。具体来说,我们使用这两个高阶网络模型讨论了傅里叶分析,信号去噪,信号插值,节点嵌入和通过神经网络进行的非线性处理。在单纯形复数的上下文中,我们特别关注使用HodgeLaplacian矩阵的信号处理,该矩阵是一种多关系运算符,它利用单纯形复数的特殊结构并概括了图信号处理中Laplacian矩阵的理想属性。对于超图,我们同时给出矩阵表示和张量表示,并讨论采用一种或另一种时的权衡取舍。我们还将重点介绍局限性和潜在的研究途径,以向从业人员提供信息并激发新研究人员对该领域的贡献。原文题目:SignalProcessingonHigher-OrderNetworks:Livin'ontheEdge...andBeyond原文:Inthistutorial,weprovideadidactictreatmentof
其他SublimeText3菜单栏修改中文定位到:/Preferences/PackageContorol/输入installpackage查找并设置:弹窗输入chinese选择ChineseLocaloztions,等待安装完成即可Xshell不能使用数字小键盘VMwareWorkstationPro设置窗口固定大小IDEAIDEA设置单词全选IDEA消除背景SQLIDEA新建文件自动加入版本控制IDEA设置导包不显示*IDEA项目显示树形结构IDEA常用快捷键快捷键组合实现效果psvm+Tab键publicstaticvoidmain(String[]args)sout+Tab键System.out.println()Ctrl+X删除当前行Ctrl+D复制当前行Alt+Insert(或右键Generate)生成代码(如get,set方法,构造函数等)Ctrl+Alt+T生成trycatch(或者Alt+enter选择)CTRL+ALT+T把选中的代码放在TRY{}IF{}ELSE{}里Ctr+shift+U实现大小写之间的转化ALT+回车导入包,自动修正CTRL+ALT+L格式化代
Python3函数函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print()。我们可以直接调用,要调用一个函数,需要知道函数的名称和参数,可以直接从Python的官方网站查看文档: https://docs.python.org/3/library/functions.html 也可以在交互式命令通过help(print)查看print函数的帮助信息 但你也可以自己创建函数,这被叫做用户自定义函数。定义函数你可以定义一个自己想要功能的函数,以下是简单的规则:#1.函数代码块以def关键词开头,后接函数标识符名称和圆括号() #2.任何传入参数和自定义变量必须放在圆括号中间,圆括号之间可以用于定义参数. #3.函数的第一行语句可以选择性地使用文档字符串用于存放函数说明 #4.函数内容以冒号起始,并且缩进。 #5.reture[表达式]结束函数,选择性地返回一个值调用方,不带表达式的return相当于返回None. #函数:以功能(完成一件事)为导向,登录,注册,len,一个函数就是
<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>02_数据_变量_内存</title></head><body><!--1.什么是数据?*存储于内存中代表特定信息的'东东',本质就是0101二进制*具有可读和可传递的基本特性*万物(一切)皆数据,函数也是数据*程序中所有操作的目标:数据*算术运算*逻辑运算*赋值*调用函数传参...2.什么是内存?*内存条通电后产生的存储空间(临时的)*产生和死亡:内存条(集成电路板)==>通电==>产生一定容量的存储空间==>存储各种数据==>断电==>内存全部消失*内存的空间是临时的,而硬盘的空间是持久的*一块内存包含2个数据*内部存储的数据(一般数据/地址数据)*内存地址值数据*内存分类*栈:全局变量,局部变量(空间较小)*堆:对象(空间较大)3.什么是变量?*值可以变化的量,由变量名与变量值组成*一个变量对应一块小内存
0x00背景为了进行相关安全方面的认证,需要对公司域环境内员工账号的密码进行审计,作为一名刚从事信息安全的人员,尝试在本身拥有的权限以内,在不影响其他员工日常工作、不影响服务器正常运行的情况下,审计出使用弱密码作为登录口令的员工。0x01过程0x0101LDAP尝试因为员工的电脑都处于一个域环境下,因而所有的账号密码都保存在域控的一个数据库中。刚开始想到可以使用Powershell通过LDAP向域控发送用户名和密码一个个进行爆破尝试然而因为域环境下为设定了账户锁定策略,连续尝试5次失败后,会被锁定30min,会严重影响到被锁定账户员工的工作。因而这条思路对同一个用户只能尝试5次,走不通。0x0102Kerberos尝试1.想到域环境下通常使用Kerberos作为网络认证协议,可以利用黄金票据和白银票据来进行渗透测试。黄金票据:黄金票据是要伪造出AS颁发给Client的TGT,伪造的其中一个条件就是要获得KDC的KRBTGT账户的密钥*然而自身只拥有一台公司发的工作电脑,域控管理员没有在这台电脑上登录过,因而也就无法通过mimikatz工具提取到权限较大的管理员的账户口令。白银票据:白银
我们都会为我们的代码编写测试,不是吗?毫无疑问,我知道这个问题的答案可能会从“当然,但你知道怎样才能避免写测试吗?”到“必须的!我爱测试”都有。接下来我会给你几个小建议,它们可以让你编写测试变得更容易。那会帮助你减少脆弱的测试,并保证应用程序更加健壮。与此同时,如果你的答案是“不,我不编写测试。”,那么我希望这些简单但有效的技术可以让你了解编写测试带来的好处。你也会看到,编写一个复杂、没有价值的测试集(testsuit)并没有你认为的那么难。如何编写测试、有哪些用于管理测试集合的最佳实践这些主题并不新鲜。我们在过去已经就这个问题的某些方面讨论了很多次。从“在构建过程中使用集成测试的正确方式”到谈论“在单元测试中恰当地模拟环境”,再到“代码覆盖率以及如何找到哪些是你真正需要测试的代码”。但是,今天我想和你谈论一系列小建议,这些建议可以帮助你在头脑中理清测试自下而上是如何运作的。从如何构造一个简单的单元测试到对mock(模拟)和spy(监视)以及复制粘贴测试代码更高层次的理解。那我们开始吧。AAArrr,像海盗一样说话?和大部分软件开发一样,模式通常都是一个不错的开始。无论是想要通过工厂来
如果你曾经体验过虚拟现实,你必然会对此项技术大感惊奇。当然,目前的VR还处于初级阶段,与任何其他新技术一样,VR还有很大的改进空间,我们希望在未来几年能够看到以下几个方面的改进。远程传送过于频繁就在16个月前,我们都认为远程传送是解决VR眩晕的一个非常有效的解决方法:直接把玩家从一个地方传输到另一个地方就不会导致眩晕。我们还预测,“从现在开始一两年内,你可以期望看到大量基于电传的VR游戏。”实际上任何第一人称VR游戏都值得使用远程传送,让玩家漫步于更大的虚拟世界。即使在玩家可以亲自走动的房间规模的VR游戏中,玩家也需要借助远程传送来到达比自己的办公室或客厅更大的游戏世界。VR传送已经无处不在。那么,开发者除了传送之外还能有什么其他途径?有些使用驾驶舱作为稳定剂(如在太空大战游戏《Eve:Valkyrie》),而其他开发商坚持使用标准的VR运动。《Eve:Valkyrie》 很明显,每个人都想通过远程传送来进行移动,但还没有人知道如何大规模的应用这个技能。同时,这种有效但过度使用的解决方法也会使VR移动太过重复且不合逻辑。切断电缆虽然目前市面上已经有很多移动端的VR设备,如谷歌Daydr
Python语言的优势基于以下三个原因,选择Python作为实现数据挖掘算法的编程语言:(1)Python的语法清晰;(2)易于操作纯文本文件;(3)使用广泛,存在大量的开发文档。Python具有清晰的语法结构,也被称作可执行伪代码(executablepseudo-code)。默认安装的Python开发环境已经附带了很多高级数据类型,如列表、元组、字典、集合、队列等,无需进一步编程就可以使用这些数据类型的操作。使用这些数据类型使得实现抽象的数学概念非常简单。此外,还可以使用自己熟悉的编程风格,如面向对象编程、面向过程编程、或者函数式编程。Python语言处理和操作文本文件非常简单,非常易于处理非数值型数据。Python语言提供了丰富的正则表达式函数以及很多访问Web页面的函数库,使得从HTML中提取数据变得非常简单直观。Python语言挖掘的特色诸如MATLAB和Mathematica等高级程序语言也允许用户执行矩阵操作,MATLAB甚至还有许多内嵌的特征可以轻松地构造数据挖掘应用,而且MATLAB的运算速度也很快。然而MATLAB的不足之处是软件费用太高,单个软件授权就要花费数千美
prometheus安装 官网地址:https://prometheus.io/docs/prometheus/latest/installation/ 配置文件: global: scrape_interval:15s scrape_timeout:10s evaluation_interval:15s alerting: alertmanagers: -follow_redirects:true scheme:http timeout:10s api_version:v2 static_configs: -targets:[] scrape_configs: -job_name:prometheus honor_timestamps:true scrape_interval:15s scrape_timeout:10s metrics_path:/metrics scheme:http follow_redirects:true static_configs: -targets: -localhost:9090 复制 启动 dockerrun-d-p9090:9090prom/pr
一、实验目的 熟悉Mininet自定义拓扑脚本的编写;熟悉编写POX脚本动态改变转发规则 二、实验原理 在SDN环境中,控制器可以通过对交换机下发流表操作来控制交换机的转发行为。在本实验中,基于Mininet脚本,编写POX脚本,动态改变交换机的转发规则。 三、实验任务 先看一下本次实验的拓扑图: 在该环境下,假设H1pingH4,初始的路由规则是S1-S2-S5,一秒后,路由转发规则变为S1-S3-S5,再过一秒,规则变为S1-S4-S5,然后再回到最初的转发规则S1-S2-S5。通过这个循环调度的例子动态地改变交换机的转发规则。 1.1在pox文件里面创建脚本lab_controller.py 1frompox.coreimportcore 2 3importpox.openflow.libopenflow_01asof 4 5frompox.lib.utilimportdpidToStr 6 7frompox.lib.addressesimportIPAddr,EthAddr 8 9frompox.lib.packet.arpimportarp 10 11frompox.li
看了几天的sift也算是对它有一了点的了解 这里描述了我对它的理解! sift就是为了图像特征比较做的算法.它主要就是为了用数学的方法描述:图像中特定点周围一块区域, 从而可以比较这块区域与另一块区域的差异. 下面是详细一点讲述如何描述这个数学方法: 1.数据结构: 这个区域在sift中选的是4*4也就是16个点或者说区域.然后按8个方向进行直方图统计. 晕了吧! double feature[4][4][8]; 其实就是它.....(0,0)-(3,3)区域内 8个不同方向的值累加起来 2.再说它的特性: 位置、尺度以及方向的不变性(这个好专业,更晕) 解释一下: 位置不变,就是说, 你不可能把图像每一点都弄成特征点,所以你要找一个有代表性的点,而这个点,不管用什么图像都要可以提取出来. (其实可以不用,多提一些,总有一些特征点相同.) 就是说二张图像有重合部分,你提出的二张重合部分的特征点要一样,不然如
RobotTourGuideExamples MDPGridWorld ProblemsWithConventionalPlanning Forthisproblem(andonlythisproblem)assumeactionsarestochasticinawaythatisdifferentthandescribedin4.MDPGridworld. Insteadofanactionnorthpossiblygoingeastorwest,anactionnorthwillpossiblygonortheastornorthwest(i.e.tothediagonalsquares). Likewisefortheotherdirectionse.g.anactionwestwillpossiblygowest,northwes
对于域名解析相信很多小伙伴都了解过,就是我们在万网购买一个域名,比如hpugs.com,然后呢?我们希望域名与我们的服务器绑定,然后通过域名直接访问我们的项目,这就是本篇要和大家一起探讨的问题。下面开始我们的工作: 1、首先是域名,登录万维网官网,填写我们想要购买的域名,然后就是查询是否已被抢注,如果没有被抢注,下面就是付钱购买了。 2、有了域名,接下来就是我们的服务器了,大家可以根据自身的需求,进行选择,比如像小笔一样,是一枚穷逼,那怎么来模拟这个过程呢?答案当然是有的,我们可以把自己的电脑当做一台服务器。这样的话,我们的域名也无需购买了,通过修改本地hosts文件,自定义本地域名绑定。具体方法:打开C:\Windows\System32\drivers\etc找到hosts文件,用记事本打开,我们可以看到,localhost与我们的127.0.0.1是绑定的。 #localhostnameresolutionishandledwithinDNSitself. #127.0.0.1localhost #::1localhost复制 看到这里你是不是已经知道该怎么做
假设如果已经知道得分分布为\(s_1\ges_2\ge\cdots\ges_m\),考虑如何判断是否存在满足条件的情况。 考虑网络流: 对于每一道题\(i\),从源点\(S\)向\(i\)连接一条下界\(l_i\)上界为\(r_i\)的边。 对于每一名学生\(j\),从\(j\)向汇点\(T\)容量为\(s_j\)的边。 对于任意一道题\(i\)和任意一名学生\(j\),连一条从\(i\)向\(j\)容量为\(1\)的边。 当\(\{s_m\}\)合法当且仅当这张图存在大小为\(\sums_j\)的流。 然后再把这张图转成一般的(没有下界的)网络流就行了。 具体地,注意到每个试题\(i\)都有\(l_i\)的流量逆差,因此再建一个超级源点\(S'\)向它提供大小为\(l_i\)的流。 注意到这张图并不会存在大小超过\(\sums_j\)的流。 于是,若这张图存在大小为\(f\)的流,当且仅当存在大小\(\gef\)的流。 根据最大流最小割定理,上述条件等价于这张图的每一个割集的容量和\(\gef\)。 然后考虑上界,将\(S\)和\(S'\)看作整体,令割集为\((A\midB)\
最近在使用mybatis查询时,遇到了一个非常闹残的事——与mybatis相关的问题。 问题如下。 一、问题分析 结果为[],说明进行了查询,但没有匹配结果。 1、mysql数据库查询测试 2、对xml配置文件分析 查看源码: 基本没有问题,并且在测试代码中将数据进行了处理(brandName="%"+brandName+"%";)。个人尝试:因为前面没有使用like进行模糊查询,所以去掉后两个模糊查询条件,结果查询成功了?。顿时郁闷了,那是like查询有问题?是手动对参数的处理有问题? 查看mybatis官方文档,bind标签也可以与模糊查询搭配使用: 结果却还是查询不成功?。 二、问题解决 在问题解决无果后,几乎放弃。晚上回来,看到模糊查询的内容"%技术%"的字眼,我顿时想到,会不会是因为有%或者中文的出现导致mybatis识别不出来? 查看mybatis-config.xml配置文件一看,没配置字符编码集?。 结果一测试就成功了?。 .esa-post-signature{ padding:12px24px12px30px;
大家都知道TreeTagger是一个用于词性标注和词型还原的工具,它的返回结果由三部分组成:目标词汇,词性,原形。那该工具是怎样判断目标词汇的词性的呢?又是怎样得到目标词汇的原形的呢?本文就是从这两个问题入手,对TreeTagger的原理进行简单的介绍。 1.词性的识别判断 这里词性的识别采用的决策树分类方法。如下图所示,首先将目标文本分成三元短语,然后通过判断目标词汇的前两个单词的词性来判断当前词汇的词性,具体思路下图所示:当前一个词的词性为ADJ时,判断前面倒数第二个词的词性,当词性为DET时,我们就可以得出结论:当前词汇的词性70%的可能性是NN,10%的可能性是ADJ。 那具体这棵树是如何构建的呢? 1)从当前词出发,判断其前面第一个相邻词汇的所有可能词性标记,选择特征性最明显的词性标记,将当前节点分成yes,和no两个子树。判断特征性明显的公式如下: 这里的C为当前节点的上下文,C+为测试q成功的情况,C-为对应的测试q失败的情况, 为测试q成功(失败)的概率; 为在测试q成功(失败)的条件下,第三个标记为t的概率。 Iq为平均信息量,我们要选择最大信息量等价于与选择最小
DAY??? 高二的我听到据说去年成绩可能不算数??? 于是我拖着疲惫的身躯。。。回来了。 AFO再次失败。。。 (再也不说AFO了。。。) 2020/9/30 周三晚上作业较少,于是来上课了。 开屏暴击。。。居然一上来就做一套初赛卷子。 然后稳稳地考了倒数。 想去年我还是WHYZ最高分。 今年高一有点强。 然后打一套试题。 第一题:BFS肯定能写! 然后一个小时我都在写BFS。 又一个小时我还是再写BFS。 结束时我还在写。。。 啊这就爆零了??? 临走时:这届高一好像很强。。。 2020/10/4 国庆集训两天。 身为高二的我真的是赶死了才挤出来两天时间。 七号月考准备自闭。 上午一套试题。 第一题貌似挺简单的,就是个裸的BFS。半小时切掉,大数据跑过。 第二题貌似是分治然后处理一点细节,然而我居然找到规律然后就过了,用了奇怪的算法。。。自己造了个大样例,也过了。 大概才过一个多小时。 开始第三题。 第三题是很明显的并查集。 但有两个数据要传递,于是我用了结构体维护,然而另一个数据貌似是下传比较方便