• 最新文章
  • linux
  • php
  • sql
  • 服务端
  • tool
  • cocos

git常用命令远程

从远程仓库克隆 git clone 远程Git仓库地址 查看远程仓库 #仓库服务器的名字 git remote #仓库地址 git remote -v 本地仓库跟远程仓库建立关联关系 # 运行 git remote add origin <url> 添加一个新的远程 Git 仓库 git remote add origin 远程仓库地址 移除无效的远程仓库 git remote rm 仓库名(默认origin) 从远程仓库中拉取 git pull 是从远程仓库获取最新版本到本地仓库 如果原来没有库,那么需要 git clone 远程仓库地址 代码冲突 多人协同开发时,避免不了会出现代码冲突的情况 git push 后如果发现冲突,那么需要把代码先拉取过来 git pull 拉取后,修改标注出来的冲突内容 因此要保持好习惯,如: 养成良好的操作习惯,先`pull`在修改,修改完立即`commit`和`push` Git分支 列出所有本地分支 git branch 列出所有远程分支 git branch -r 列出所有本地分支和远程分支 git branch -a 创建分支 // 创建分支 git branch 分支的名字 切换分支 // 创建分支 git branch 分支的名字 推送至远程仓库分支 git push origin 分支的名字 合并分支 git merge 分支的名字 删除分支 删除本地分支 git branch -d 分支名字 强行删除本地分支 git branch -D 分支名字 要查看当前的版本,可以使用以下命令: git log:此命令将显示提交历史,包括提交的哈希值(commit hash)、作者、日期、提交信息等。默认情况下,git log会以最新的提交为起点,按照时间顺序显示所有提交记录。 git show:该命令会显示最新一次提交的详细信息,包括所有修改的文件、修改的内容以及提交的作者和日期。 git branch:此命令会显示当前所有的分支,并且用一个星号标记出当前所在的分支。 git describe:该命令会显示当前所在 commit 的相关信息,包括最近的 tag、commit 哈希值以及距离最近的 tag 的提交数。这个命令可以用于生成当前版本的唯一标识。 git status:此命令用于查看当前分支的状态,包括已修改的文件、已暂存的更改以及未跟踪的文件。通过查看状态,可以了解当前工作目录是否与最新的提交一致。 这些命令可以通过在命令行中输入来查看当前的版本信息。根据需要选择合适的命令,以了解当前的版本情况。 要显示当前版本(即最后一次提交的版本)的信息,你可以使用以下Git命令: git log -1 这将显示最近的一次提交信息,包括提交哈希、作者信息、日期和提交消息。 如果你只想要看到当前HEAD的哈希值,可以使用: git rev-parse HEAD 这将输出当前分支最新提交的哈希值。

Git报错: Failed to connect to github.com port 443 解决方案

两种情况: 第一种情况自己有vpn,网页可以打开github。说明命令行在拉取/推送代码时并没有使用vpn 第二种情况没有vpn,这时可以去某些网站上找一些代理ip 解决办法:配置http代理Windows、Linux、Mac OS 中 git 命令相同: 配置socks5代理 git config --global http.proxy socks5 127.0.0.1:7890 git config --global https.proxy socks5 127.0.0.1:7890 配置http代理 git config --global http.proxy 127.0.0.1:7890 git config --global https.proxy 127.0.0.1:7890 注意: 命令中的主机号(127.0.0.1)是使用的代理的主机号(自己电脑有vpn那么本机可看做访问github的代理主机),即填入127.0.0.1即可,否则填入代理主机 ip(就是网上找的那个ip) 命令中的端口号(7890)为代理软件(代理软件不显示端口的话,就去Windows中的代理服务器设置中查看)或代理主机的监听IP,可以从代理服务器配置中获得,否则填入网上找的那个端口port socks5和http两种协议由使用的代理软件决定,不同软件对这两种协议的支持有差异,如果不确定可以都尝试一下 主机号和端口号可在代理的位置查看(自己有vpn的需要查看) 查看代理命令 git config --global --get http.proxy git config --global --get https.proxy 取消代理命令 git config --global --unset http.proxy git config --global --unset https.proxy

全网VIP视频免费破解去广告 增强版

全网VIP 视频免费 破解去广告介绍 全网VIP视频免费破解去广告是一个油猴脚本增强版,完全免费、无广告、无需关注公众号,集合了优酷、爱奇艺、腾讯、B站(bilibili)、芒果等全网VIP视频(PC+移动端)免费破解去广告,网易云音乐、QQ音乐、酷狗、酷我、虾米、蜻蜓FM、荔枝FM、喜马拉雅等网站音乐和有声书音频免客户端下载,知乎增强(知乎视频下载、去广告、关键词屏蔽、去除侧边栏等),视频无水印下载(bilibili、抖音、快手、西瓜),百度网盘直接下载,优惠券自动查询等几个自己常用的功能,且功能可独立开关。 📜 脚本功能 ⚙️ 脚本设置,支持脚本各功能的独立开关。 🎬 全网VIP视频免费解析,支持PC+移动端优酷、爱奇艺、腾讯、B站(Bilibili)、乐视,芒果等各大 视频网站。 🎵 全网音乐免客户端下载,支持网易云音乐、QQ音乐、酷狗、酷我、虾米、蜻蜓FM、荔枝FM、喜马拉雅等音乐网站。 🎫 查券,支持淘宝、天猫、京东的优惠券自动查询。 📑 知乎增强,支持知乎去广告、视频下载、屏蔽视频、关闭侧边栏、链接直接跳转、关键词屏蔽等。 💻 视频下载,支持抖音、快手、bilibili、西瓜视频等。 💿 网盘下载,百度网盘免客户端下载。 脚本部分功能截图 🎬 视频解析 🎵 音乐下载 📱 短视频下载 💿 网盘下载 全网VIP视频免费破解去广告脚本下载安装 第一次使用脚本用户需要安装脚本管理器:Greasy Fork油猴脚本使用教程 脚本地址:懒人专用,全网VIP视频免费破解去广告v5.6

Greasy Fork油猴脚本使用教程

greasy fork 油猴 脚本是什么 用户 脚本是一段代码,它们能够优化你的网页浏览体验。安装之后,有些脚本能为网站添加新的功能,有些能使网站的界面更加易用,有些则能隐藏网站上烦人的部分内容。在 Greasy Fork 上的用户脚本都是由用户编写并向全世界发表的,你可以免费安装,轻松体验。 Greasy Fork 油猴 脚本使用教程 第一步:安装 脚本管理器 要使用用户脚本,您首先需要安装一个用户脚本管理器。你可以根据当前使用的 浏览器来选择一个用户脚本管理器。 PC用户 Chrome:Tampermonkey 或 Violentmonkey Firefox:Greasemonkey、Tampermonkey 或 Violentmonkey Safari:Tampermonkey 或 Userscripts Microsoft Edge:Tampermonkey Opera:Tampermonkey或 Violentmonkey Maxthon:Violentmonkey AdGuard:(不需要其他软件) Android用户 Firefox:Greasemonkey、Tampermonkey 或 Violentmonkey Maxthon:Violentmonkey Dolphin:Tampermonkey UC:Tampermonkey Kiwi:Tampermonkey 或 Violentmonkey X 浏览器 书签地球 M浏览器 iOS用户 Safari:Tampermonkey 或 Userscripts Gear:(不需要其他软件) 第二步:安装 脚本 浏览此网站 查找你想尝试的用户 脚本,点击安装此脚本即可。 第三部:脚本中心管理 安装完后,找到相应的脚步管理中心即可选择开启喝关闭脚步,下图是Chrome的油猴脚本管理中心 至于其他的油猴脚本玩法,大家可以自行研究哈

unity 从apk包中提取资源

unity 从apk包中提取资源 前提:使用本方法来提取资源有个前提就是资源没有被加密 (1)打开apk包 首先,将你的apk包重命名为zip或者rar类型的文件,然后进行解压缩,获取下面的文件    各个部分的说明如下表: 文件 说明 assets Unity游戏里面的资源和代码 lib arm和x86需要的so文件 META-INF 信息包 res 存放icon等资源 AndroidManifest.xml 清单文件 classes.dex Android Dalvik字节码 resources.arsc 编译后的二进制资源文件 我们主要关注的是assets目录,里面有我们想要的资源和代码。 (2)提取代码 下载 netreflector 这个不错本人亲测解压安装直接可以用: netreflector下载 里面有详细安装流程就不多说了 安装好之后,双击Reflector.exe,打开该软件可以看到如下画面 ,file 第一步骤解压的文件\assets\bin\Data\Managed\Assembly-CSharp.dll,可以看到 通过点击右键Assembly-CSharp进行导出,选好导出目录,等待一会,就能得到以下的源代码 (3)提取资源 UnityStudio 这个工具非常牛逼。UnityStudio可以直接在自己的软件上查看图片、shader、文本、还能直接播放音频、甚至还能看场景Hierarchy视图的树状结构;下载 选择v0.10.0以下的版本解压可以看到如下文件,打开软件 file第一步骤下的\assets\bin文件,可以看到: 这两个一个是场景层级视图,一个是资源文件列表。在资源列表中,右边的大框可以预览资源,可以多选或单选然后用上面的export菜单按钮选择导出方式进行导出。整个过程很简单主要是利用工具。目前来看对2D资源的导出没有问题,对于3D资源还要进一步实验。值得一提的是标题上有一个类似unity版本号的东西,不知道是不是准确识别了app开发时用的unity版本。 选择 asset Lise 然后Export 导出即可。 上面: 使用本方法来提取资源有个前提就是资源没有被加密,这个问题会在后面进行研究。而且这个方式目前是在Windows平台下使用的。 以青蛙旅行这款游戏为例,先准备好其apk包,然后对其进行解压。这里有两种方式,一种是修改apk包后缀为zip然后解压,不过这样似乎会让xml文件呈现乱码显示,如果希望看到xml文件的就不建议这样了,但是如果只想提取资源的话应该不会受到影响。 另一种是使用apk反编译工具。这种方法可以看下面链接中一位博主的文章https://www.cnblogs.com/chen110xi/p/6612437.html 在之后就是要使用另一个工具了https://github.com/Perfare/UnityStudio/releases 这里是下载地址。 链接:https://www.jianshu.com/p/54aad110bbdc

mysql 查询在一张表不在另外一张表的记录

SQL Join子句,主要用在select语句中,把两个或多个表的行结合起来,基于这些表之间的共同字段(往往是id字段)来查询,从多个表中返回满足条件的所有行。 常见join子句类型   常见join子句类型有INNER JOIN(同JOIN)、LEFT JOIN、RIGHT JOIN、FULL JOIN,其中第一种为内连接,后三种为外连接。   不同的join子句类型区别如下图所示: 介绍其中4种: 1、方法一(仅适用单个字段):使用 not in ,比较容易理解,缺点是效率低 如:select A.ID from A where A.ID not in (select ID from B); 2、方法二(适用多个字段匹配):使用 left join...on... , "B.ID isnull" 表示左连接之后在B.ID 字段为 null的记录。 如:select A.ID from A left join B on A.ID=B.ID where B.ID is null ; 3、方法三(适用多个字段匹配) 如:select from B where (select count(1) as num from A where A.ID = B.ID) = 0; 4、方法四(适用多个字段匹配) 如:select from A where not exists(select 1 from B where A.ID=B.ID) 总结: 方法一:第一种not in 场景使用子查询数据量小的情况。因为我子查询只有20w的数据。但是总表有100w。所以我使用not in的话我使用的是外表的索引所以数据较快。弊端。子查询里面不能存在null字段。如果有,那么你数据就会准。这种方式的实际情况其实是和字表做hash连接。 方法二:左连接:left join 或 left outer join (1)左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null)。两表进行关联。数据量为两个表的笛卡尔积。返回左表的全部数据。右边不满足条件的为null。如果左表数据大的话,这样关联数据也不小。所以速度这么慢,属于正常。 方法四:第二种not in 场景使用子查询数据量小的情况。因为我子查询只有20w的数据。但是总表有100w。所以我使用not exists的话我使用的是子表的索引。但是我外表数据太大。所以导致速度变慢。本质:对外表作loop循环,每次loop循环再对内表进行查询。 总结: 如果右表是子表,也就是说右表有多条记录匹配左表的话,那么展示的最终结果是多条记录和左表匹配。如下图展示 总结:left join 其实也就是匹配左表的过程,on条件后不应该加上左表的条件。

黑桃spade,红桃heart,方片diamond,梅花club

A ace,J jack,Q queen,K king 据说,扑克牌里的A指“至尊(Ace)”,意为扭转乾坤之王牌,K指“国王(King)”,Q指“王后(Queen)”,J指的是“宫内的仆人杰克(Jack)”. 扑克牌中的四种花色,即黑桃(spade)、红桃(heart)、梅花(club)、方块(diamond),代表一年中的春(spring)、夏(summer)、秋(autumn)、冬(winter)四季; 黑桃、梅花代表夜晚,红桃、方块代表白天 .J、Q和K共12张代表一年有12个月(There are twelve months in a year).除大、小王外,共52张,说明一年有52个星期(There are fifty-two weeks in a year),而扑克牌中的每种花色正好13张,说明每个季节正好有13个星期(There are thirteen weeks in a season). 如果把扑克牌中的总点数计算一下,J作11点,Q作12点,K作13点,大小王各作半点,正好是365点,表示一年有365天(There are three hundred and sixty-five days in a year). 若有闰年,把大、小王各作一点,刚好是366天. 扑克牌(Playing Card)起源于远东地区,14世纪传入欧洲.今天扑克牌中的四种花色采用的是法国16世纪通行的规则. "黑桃'(spade)代表橄榄叶,象征和平;"红桃"(heart)象征智慧和爱情;"梅花"(club)起源于三叶草,代表幸福;"方块"(diamond)代表财富. 现在扑克牌中的每种花色有13张牌,共52张牌,另增大王,小王个一张.扑克牌里的A指"至尊"(Ace),K指"国王"(king),Q指"王后"(Queen),J是宫内的仆人"杰克"(Jack),但也有人说是"太子"或"法官"(Judge). 一年中的时间也可以从扑克牌里找到.如:How many seasons (months.weeks.days) are there in a year? 扑克牌里的四种花色,代表一年的春,夏,秋,冬四季(黑桃,梅花代表黑夜,红桃,方块代表白天);J,Q和K共十二张代表一年中的十二个月,除去大,小王.共有五十二恰是一年五十二个星期的数目(每季有十三个星期,而扑克牌的每种花色正好是十三张);如果计算一下扑克牌的总数点,J做十一点,Q做十二点.K做十三点,大,小王个做半点,则正好三百六十五点,表示一年有三百六十五天(若是润年,则把大,小王个作一点,则刚好三百六十六天). 扑克牌的玩法有很多,西方流行的有Bridge(桥牌),Blackjack(21点),Canasta(塔牌)等.各种牌戏在西方都很普及,往往还有赌博成分,因此有些英语习语来自扑克牌游戏,如果能了解西方的民俗文化,另一方面也能增进对这些词组的理解. follow suit 跟出同花色的牌 和条习语来自纸牌游戏,suit指同一花色的牌,打纸牌时,一个人先出一种花色,其他的人都必须跟出同一花色的牌,follow suit的愿意是跟牌,在习语中喻指"效仿他人,跟着做".与汉语"依葫芦画瓢"相似,例如: I'm not just watch what you do and follow suit.我不熟悉中国的风俗习惯,所以,我看你怎么做我就怎么做吧. call one's bluff 要某人摊牌 这条习语来自扑克牌游戏,bluff意为"手持弱牌但以大赌注吓退对手".call one's bluff则是要对方摊牌,现转义为"不受某人的威胁,揭穿某人的把戏".例如: He wanted us to believe he was an inspector ,bt I called his bluff and asked for I.D.他希望我们相信他是检查人员,但我要求他摊牌,亮出证件来. have a card/an ace up one's sleeve 藏有备用的牌或王牌 这条习语来自牌戏,打牌时采取欺骗的手段,把最大的牌藏到衣袖里,现在比喻"秘而不宣的计划,锦囊妙计".例如: No one knew that Mr.Black had a card up his sleeve when he declared that he could he coule not support Mr.Tubbs at the election.当布兰克先生宣布不支持塔不斯先生竞选时,无人知道他自有锦囊妙计.

URL特殊字符的转义

特殊符号 十六进制值 转义符为 %2B 空格 转义符为 + 或 %20 / 转义符为 %2F ? 转义符为 %3F % 转义符为 %25 # 转义符为 %23 & 转义符为 %26 = 转义符为 %3D 前些时间做了个文件下载的应用,由于中文名文件的原因,所以在拼URL的时候,会提前把文件名转义 fileName = URLEncoder.encode(fileName,"UTF-8"); 问题来了,如果文件名中带空格的话,出问题了,空格被转成了+,而不是%20,再向下载服务器进行下载请求时,Servlet不认,直接出错。 于是再考虑了一下,把代码中的空格转成%20。 代码如下: fileName = URLEncoder.encode(fileName,"UTF-8");   fileName = fileName.replaceAll("\\+","%20");   如上,问题解决了,再decode也可以正常得到正确的文件名。 为什么会这样呢,网上搜了一把,原理如下: 一个URL的基本组成部分包括协议(scheme),域名,端口号,路径和查询字符串(路径参数和锚点标记就暂不考虑了)。路径和查询字符串之间用问号?分离。例如www.example.com/index?param=1,路径为index,查询字符串(Query String)为param=1。URL中关于空格的编码正是与空格所在位置相关:空格被编码成加号+的情况只会在查询字符串部分出现,而被编码成%20则可以出现在路径和查询字符串中。 造成这种混乱局面的原因在于:W3C标准规定,当Content-Type为application/x-www-form-urlencoded时,URL中查询参数名和参数值中空格要用加号+替代,所以几乎所有使用该规范的浏览器在表单提交后,URL查询参数中空格都会被编成加号+。而在另一份规范(RFC 2396,定义URI)里, URI里的保留字符都需转义成%HH格式(Section 3.4 Query Component),因此空格会被编码成%20,加号+本身也作为保留字而被编成%2B,对于某些遵循RFC 2396标准的应用来说,它可能不接受查询字符串中出现加号+,认为它是非法字符。所以一个安全的举措是URL中统一使用%20来编码空格字符。 具体的做法上面也给出了。

nginx配置多个域名使用同一个端口

随着服务器性能的提升和业务的需求,一台服务器上往往会同时有多个服务,这些服务都希望监听80端口,比如有a.com和b.com。这时候我们可以使用nginx的代理转发功能帮我们实现共用80端口的需求。 先在两个空闲的端口上分别部署项目(非80,假设是8080和8081)nginx配置如下: # a项目配置nginx server { listen 8080; root /usr/share/nginx/html; #这里是默认路径,生产中代码存放路径:root /web/vue-base-demo/dist/; index index.html; location / {} } # b项目配置nginx server { listen 8081; root /usr/share/nginx/html; #这里是默认路径,生产中代码存放路径:root /web/react-base-demo/build; index index.html; location / {} } 紧接着如果已经做好域名解析,希望a.com打开a项目,b.com打开b项目。我们需要再做两个代理,如下: # nginx 80端口配置 (监听a二级域名) server { listen 80; server_name a.com; location / { proxy_pass http://localhost:8080; # 转发 } } # nginx 80端口配置 (监听b二级域名) server { listen 80; server_name b.com; location / { proxy_pass http://localhost:8081; # 转发 } nginx如果检测到a.com的请求,将原样转发请求到本机的8080端口,如果检测到的是b.com请求,也会将请求转发到8081端口。 测试:浏览器输入http://a.com或http://b.com即可。 如果还有其它的想让谁做为默认的为80端口,后listen 80 后加上default_server; 就好 server { listen 80 default_server; server_name b.com; location / { proxy_pass http://localhost:8081; # 转发 }

zip打包目录所有文件(含隐藏文件/夹)

我们在linux中常见的压缩文件有.tar.gz,.zip,.gz,在linux中,你要习惯没有.rar的日子。 一下为tar,zip命令详解 tar -zcvf /home/files.tar.gz /files tar -zcvf 打包后生成的文件名全路径 要打包的目录 例子:把/files文件夹打包后生成一个/home/files.tar.gz的文件。 zip 压缩方法: 压缩当前的文件夹 zip -r ./files.zip ./* -r表示递归 zip 解压 unzip files.zip 不解释 linux zip命令的基本用法是: linux zip命令参数列表: -a 将文件转成ASCII模式 -F 尝试修复损坏的压缩文件 -h 显示帮助界面 -m 将文件压缩之后,删除源文件 -n 特定字符串 不压缩具有特定字尾字符串的文件 -o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间 -q 安静模式,在压缩的时候不显示指令的执行过程 -r 将指定的目录下的所有子目录以及文件一起处理 -S 包含系统文件和隐含文件(S是大写) -t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy 举例: 将/home/wwwroot/files/ 这个目录下所有文件和文件夹打包为当前目录下的files.zip zip –q –r files.zip /home/wwwroot/files 上面的命令操作是将绝对地址的文件及文件夹进行压缩.以下给出压缩相对路径目录 比如目前在Bliux这个目录下,执行以下操作可以达到以上同样的效果. zip –q –r files.zip files 比如现在我的files目录下,我操作的zip压缩命令是 zip –q –r files.zip * 以上是在安静模式下进行的,而且包含系统文件和隐含文件 ////////////////////////////////////////////////////////// unzip语 法: unzip 或 unzip 补充说明:unzip为.zip压缩文件的解压缩程序。 unzip参 数: -c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。 -f 更新现有的文件。 -l 显示压缩文件内所包含的文件。 -p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。 -t 检查压缩文件是否正确。 -u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。 -v 执行是时显示详细的信息。 -z 仅显示压缩文件的备注文字。 -a 对文本文件进行必要的字符转换。 -b 不要对文本文件进行字符转换。 -C 压缩文件中的文件名称区分大小写。 -j 不处理压缩文件中原有的目录路径。 -L 将压缩文件中的全部文件名改为小写。 -M 将输出结果送到more程序处理。 -n 解压缩时不要覆盖原有的文件。 -o 不必先询问用户,unzip执行后覆盖原有文件。 -P<密码> 使用zip的密码选项。 -q 执行时不显示任何信息。 -s 将文件名中的空白字符转换为底线字符。 -V 保留VMS的文件版本信息。 -X 解压缩时同时回存文件原来的UID/GID。 指定.zip压缩文件。 指定要处理.zip压缩文件中的哪些文件。 -d<目录> 指定文件解压缩后所要存储的目录。 -x<文件> 指定不要处理.zip压缩文件中的哪些文件。 -Z unzip -Z等于执行zipinfo指令 举例: 将/home/wwwroot/files.zip解压到当前目录 unzip files.zip 如果出现这个提示: -bash: zip: command not found 不能执行ZIP压缩,是因为没有安装ZIP, 运行下这条安装命令即可 yum install zip zip -r landui_com.zip . 说明: -r 递归子目录 所有非隐藏文件/夹 .*(所有隐藏文件/夹,但排除..(上一级目录)) 还有一个tar命令,也可以打包 //打包目录/ad 到/testtar/tar.tar.gz tar -czf /home/ad_0923.tar.gz ./ad //解压到指定目录/ tar -xzvf ad_0923.tar.gz -C /