首页
归档
友链
关于
Search
1
网易云音乐黑胶会员月月免费赠送
3,060 阅读
2
十年之约RSS聚合订阅服务上线
2,584 阅读
3
工资发放日的区别
2,298 阅读
4
rsyslogd内存占用过高解决方案
2,206 阅读
5
Nginx反代MinIO后,上传文件签名异常
2,108 阅读
零碎
标本
码海
工具
其他
登录
Search
标签搜索
北京
摄影
Java
旅行
生活
学习笔记
教程
Linux
服务器
软件
SpringBoot
日记
Windows
服务
数据库
福利
Spring
系统
SQL
前端
萧瑟
累计撰写
191
篇文章
累计收到
1,276
条评论
首页
栏目
零碎
标本
码海
工具
其他
页面
归档
友链
关于
搜索到
24
篇与
学习笔记
的结果
2022-05-22
Joe主题对接腾讯LBS展示IP属地
上次偶然逛CSDN看到腾讯的LBS服务支持IP定位,而且还支持IPv6地址定位,这个是其他LBS供应商所不支持的(百度地图、高德地图),所有腾讯LBS服务还算良心。我们一步一步对接主题吧,今天先来申请应用AK。注册账号打开腾讯位置服务官网,点击登录,直接使用QQ登录或微信登录即可,如果单独注册需要输入手机号之类,麻烦的事情,但是使用QQ登录/微信登录后也需要校验一下手机号,但是个人信息不用填写太多。使用QQ登录/微信登录后会提示注册或绑定账号,这个时候我们直接选择注册账户即可。你看这样简单吧,输入手机号和邮箱就OK,不用填写过多信息,下次可以直接使用QQ或者微信登录即可。创建应用打开控制台,左侧有一个应用管理,点击后可创建应用,输入应用名称和应用类型即可,无需输入域名、备案信息啥的,所有这方便无需担心。一个应用可以添加多个Key,一个Key每日可调用10000次,并发5次每秒。这时候我们选择WebService API服务即可,选择后有三种方案,域名白名单、授权IP、签名校验,一般我们会部署在服务器上,所以可以选择授权IP,这样方便一些;域名白名单和签名校验限制有些多,且我们这次对接主题也是以授权IP为主。保存后我们就能拿到一个Key,这里我们简称AK,下面开始对接Joe主题展示博友访客IP属地信息。添加主题调用方法2022.05.25:为了个人隐私,以下代码已去除城市和区县信息,仅显示国家和省 核心方法代码位置:Joe/core/function.php 在末尾添加以下代码/* 腾讯Lbs IP定位服务 */ function curl_tencentlbs_ip($ip) { //应用Key也就是上面所说的AK,修改成自己的Key即可 $key = 'XXX-XXX'; $url = 'https://apis.map.qq.com/ws/location/v1/ip?ip='.$ip.'&key='.$key; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HTTPGET, true); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'); $content = curl_exec($ch); curl_close($ch); if($content) { $json = json_decode($content,true); if($json['status'] == 0 ) { $resjson = $json['result']['ad_info']; if($resjson['province']=='北京市'||$resjson['province']=='天津市'||$resjson['province']=='上海市'||$resjson['province']=='重庆市') { return $resjson['nation'].$resjson['city']; } return $resjson['nation'].$resjson['province']; } } return ''; }上面调用接口后,处理以下国内的直辖市,这样就不会显示成北京市北京市了。修改主题评论相关代码评论代码位置:/Joe/public/comment.php需要修改的位置大概在末尾最后一个方法,位置112行。也可以在需要显示评论信息的位置插入下方嵌入点代码即可,我是把IP信息放在agent旁边了,这样不是特别显眼。<?php echo curl_tencentlbs_ip($comments->ip); ?>以下示例代码从96行到尾部<?php function threadedComments($comments, $options) { ?> <li class="comment-list__item"> <div class="comment-list__item-contain" id="<?php $comments->theId(); ?>"> <div class="term"> <img width="48" height="48" class="avatar lazyload" src="<?php _getAvatarLazyload() ?>" data-src="<?php _getAvatarByMail($comments->mail); ?>" alt="头像" /> <div class="content"> <div class="user"> <span class="author"><?php $comments->author(); ?></span> <?php if ($comments->authorId === $comments->ownerId) : ?> <i class="owner">作者</i> <?php endif; ?> <?php if ($comments->status === "waiting") : ?> <em class="waiting">(评论审核中...)</em> <?php endif; ?> <div class="agent"><?php echo curl_tencentlbs_ip($comments->ip); ?> <?php _getAgentOS($comments->agent); ?> · <?php _getAgentBrowser($comments->agent); ?></div> </div> <div class="substance"> <?php _getParentReply($comments->parent) ?> <?php echo _parseCommentReply($comments->content); ?> </div> <div class="handle"> <time class="date" datetime="<?php $comments->date('Y-m-d'); ?>"><?php $comments->date('Y-m-d'); ?></time> <span class="reply joe_comment__reply" data-id="<?php $comments->theId(); ?>" data-coid="<?php $comments->coid(); ?>"> <i class="icon fa fa-pencil" aria-hidden="true"></i>回复 </span> </div> </div> </div> </div> <?php if ($comments->children) : ?> <div class="comment-list__item-children"> <?php $comments->threadedComments($options); ?> </div> <?php endif; ?> </li> <?php } ?>效果如下:其他博客主题,应该也可以适用。
2022年05月22日
624 阅读
43 评论
2022-03-15
OpenJDK 64-Bit Server VM warning: Exception java.lang.OutOfMemoryError occurred dispatching signal UNKNOWN to handler- the VM may need to be forcibly terminated
这是提醒你 CMS 垃圾收集器 在 JDK 9 就开始被标注为 @Deprecated,JDK 11 支持的垃圾回收器为 G1 和 ZGC,而 ZGC 在 JDK 11 还处于实验阶段。参考资料修改 config/jvm.options 配置文件,将:-XX:+UseConcMarkSweepGC 改为:XX:+UseG1GC ## GC configuration # 注释CMS #-XX:+UseConcMarkSweepGC # 使用G1 -XX:+UseG1GC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly
2022年03月15日
633 阅读
2 评论
2022-03-01
[转载]SpringBoot项目优化和Jvm调优
项目调优作为一名工程师,项目调优这事,是必须得熟练掌握的事情。在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。在这边有一篇比较好的文章,推荐给大家! SpringBoot项目配置Tomcat和JVM参数修改配置文件关于修改配置文件application.properties SpringBoot项目详细的配置文件修改文档 其中比较重要的有:server.tomcat.max-connections=0 # Maximum number of connections that the server accepts and processes at any given time. server.tomcat.max-http-header-size=0 # Maximum size, in bytes, of the HTTP message header. server.tomcat.max-http-post-size=0 # Maximum size, in bytes, of the HTTP post content. server.tomcat.max-threads=0 # Maximum number of worker threads. server.tomcat.min-spare-threads=0 # Minimum number of worker threads.Jvm调优关于Jvm调优Oracle官网有一份指导说明: Oracle官网对Jvm调优的说明 有兴趣大家可以去看看。Jvm调优实战未设置JVM参数的情况我现在有一个项目,默认情况下,没有设置任何Jvm参数。下面我来启动看一下。看一下堆栈分配:很明显默认的最大堆内存分配了8个G。很明显的不合理嘛。下面我们来设置下Jvm参数例如要配置JVM这么一大段参数:-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC方式一:如果你用的是IDEA等开发工具,来启动运行项目,那么要调试JDK就方便太多了。只需要将参数值设置到VM options中即可。设置成功,我的GC日志和堆栈分配都已经OK了。GC日志:堆栈分配:方式二:适用于在项目部署后,在启动的时候,采用脚本或者命令行运行的时候设置。先在项目路径下,给项目打包:清理就项目mvn clean打包新项目: mvn package -Dmaven.test.skip=true打包完成后进入可运行Jar包的路径下:执行启动设置Jvm参数的操作。$ java -jar -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC newframe-1.0.0.jar这个时候,你再看监控,你就会发现,已经是Ok的了。堆栈都是按照启动时候,设置的Jvm参数启动的。关于这些设置的JVM参数是什么意思,请参考第二步中的oracle官方给出的调优文档。我在这边简单说一下:-XX:MetaspaceSize=128m (元空间默认大小)-XX:MaxMetaspaceSize=128m (元空间最大大小)-Xms1024m (堆最大大小)-Xmx1024m (堆默认大小)-Xmn256m (新生代大小)-Xss256k (棧最大深度大小)-XX:SurvivorRatio=8 (新生代分区比例 8:2)-XX:+UseConcMarkSweepGC (指定使用的垃圾收集器,这里使用CMS收集器)-XX:+PrintGCDetails (打印详细的GC日志)知识点:JDK8之后把-XX:PermSize 和 -XX:MaxPermGen移除了,取而代之的是-XX:MetaspaceSize=128m (元空间默认大小)-XX:MaxMetaspaceSize=128m (元空间最大大小)JDK 8开始把类的元数据放到本地化的堆内存(native heap)中,这一块区域就叫Metaspace,中文名叫元空间。使用本地化的内存有什么好处呢?最直接的表现就是java.lang.OutOfMemoryError: PermGen 空间问题将不复存在,因为默认的类的元数据分配只受本地内存大小的限制,也就是说本地内存剩余多少,理论上Metaspace就可以有多大(貌似容量还与操作系统的虚拟内存有关?这里不太清楚),这解决了空间不足的问题。不过,让Metaspace变得无限大显然是不现实的,因此我们也要限制Metaspace的大小:使用-XX:MaxMetaspaceSize参数来指定Metaspace区域的大小。JVM默认在运行时根据需要动态地设置MaxMetaspaceSize的大小。好啦,祝大家学习和工作顺利啦!文章原文: SpringBoot项目优化和Jvm调优
2022年03月01日
276 阅读
2 评论
2022-01-08
Java根据URL下载图片至客户端、服务器示例整合上传又拍云对象存储
Java根据URL下载图片至客户端、服务器示例整合又拍云上传
2022年01月08日
616 阅读
1 评论
2021-10-14
Java获取MultipartFile文件的MD5
Java 获取文件的 MD5 ,核心都是通过 Java 自带的 MessageDigest 类来实现。获取文件 MD5 值主要分为三个步骤,第一步获取文件的 byte 信息,第二步通过 MessageDigest 类进行 MD5 加密,第三步转换成16进制的 MD5 码值。方法一/** * 获取上传文件的md5 * @param file * @return * @throws IOException */ public String getMd5(MultipartFile file) { try { //获取文件的byte信息 byte[] uploadBytes = file.getBytes(); // 拿到一个MD5转换器 MessageDigest md5 = MessageDigest.getInstance("MD5"); byte[] digest = md5.digest(uploadBytes); //转换为16进制 return new BigInteger(1, digest).toString(16); } catch (Exception e) { log.error(e.getMessage()); } return null; }方法二使用 Java 自带的 commons-codec 包,获取16进制 MD5 值的方法。DigestUtils.md5Hex():提供三种类型( byte[] 、InputStream 、String )生成MD5/** * 获取上传文件的md5 * @param file * @return * @throws IOException */ public String getMd5(MultipartFile file) { try { byte[] uploadBytes = file.getBytes(); //file->byte[],生成md5 String md5Hex = DigestUtils.md5Hex(uploadBytes); //file->InputStream,生成md5 String md5Hex1 = DigestUtils.md5Hex(file.getInputStream()); //对字符串生成md5 String s = DigestUtils.md5Hex("字符串"); return md5Hex ; } catch (Exception e) { log.error(e.getMessage()); } return null; }
2021年10月14日
973 阅读
2 评论
2021-10-01
JAVA使用ROME生成RSS订阅
JAVA使用ROME生成RSS订阅,ROME是一组Atom/RSS具类,它用Java来操作大部份RSS。ROME可能是目前最完善的开源聚合工具, ROME 支持绝大多数的RSS协议。
2021年10月01日
519 阅读
0 评论
2021-09-30
Java线程等待
最近十年之约的RSS订阅升级了,原本订阅地址失效了,不想错失大佬们发表的精彩博文,故向创始人申请了一个API权限。 谁知道大量请求造成错误: 429 Too Many Requests , 后来发现是我请求过于频繁了。我就想到可以将线程等待几秒再执行,每天大概就请求接口这一次,不在乎数据是否实时。所以找到以下方法并做个记录。方法一:通过线程的sleep方法在需要程序等待的地方加入这个语句,实现让程序等待,这里的参数1000是以毫秒为单位,即这语句可以让程序等待1秒。Thread.currentThread().sleep(1000); 方法二:TimeUnit类里的sleep方法TimeUnit类提供的方法,其实底层调用的也是Thread类的sleep方法,让程序进行等待。只不过他在上层根据时间单位进行了封装,如下列代码,共有7种可以选择,可以方便的选择自己需要的时间单位进行使用。TimeUnit.DAYS.sleep(1);//天 TimeUnit.HOURS.sleep(1);//小时 TimeUnit.MINUTES.sleep(1);//分 TimeUnit.SECONDS.sleep(1);//秒 TimeUnit.MILLISECONDS.sleep(1000);//秒 TimeUnit.MICROSECONDS.sleep(1000);//微妙 TimeUnit.NANOSECONDS.sleep(1000);//纳秒
2021年09月30日
336 阅读
2 评论
2021-09-11
CentOS 7 登入系统的用户信息管理
查看登陆用户[root@localhost ~]# w 18:05:04 up 22 days, 17:16, 1 user, load average: 0.05, 0.10, 0.07 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.25.127 182月21 12:10 0.21s 0.21s -bash root pts/2 192.168.2.10 16:50 1:39m 0.01s 0.01s -bash root pts/3 10.5.0.118 18:01 27:39 0.01s 0.01s -bash root pts/4 192.168.25.127 18:26 2.00s 0.04s 0.02s w登出已登录用户[root@localhost ~]# pkill -kill -t pts/0查看用户是否被登出[root@localhost ~]# w 18:05:50 up 22 days, 17:16, 1 user, load average: 0.05, 0.10, 0.07 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/2 192.168.2.10 16:50 1:39m 0.01s 0.01s -bash root pts/3 10.5.0.118 18:01 27:39 0.01s 0.01s -bash root pts/4 192.168.25.127 18:26 2.00s 0.04s 0.02s w
2021年09月11日
295 阅读
4 评论
2021-05-31
Git常用命令笔记
Git图形化界面用的还可以,但是命令太多有些不太会了,索性做一个笔记跟大家一起学习下Git命令的用法... 一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。 下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库一、新建代码库# 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [项目名称] # 下载一个项目和它的整个代码历史 $ git clone [项目地址]二、配置Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。# 显示当前的Git配置 $ git config --list # 编辑Git配置文件 $ git config -e [--global] # 设置提交代码时的用户信息 $ git config [--global] user.name "[name]" $ git config [--global] user.email "[email address]” # git 修改当前的project的用户名的命令为: $ git config user.name 你的目标用户名; # git修改当前的project提交邮箱的命令为: $ git config user.email 你的目标邮箱名; # 如果你要修改当前全局的用户名和邮箱时,需要在上面的两条命令中添加一个参数,–global,代表的是全局。 # 命令分别为: $ git config --global user.name 你的目标用户名; $ git config --global user.email 你的目标邮箱名; # 临时 http 代理 # 地址和端口换成自己的代理服务器 export http_proxy=http://127.0.0.1:7777 export https_proxy=http://127.0.0.1:7777 # 永久 http 代理 $ git config --global http.proxy http://127.0.0.1:50015 $ git config --global https.proxy http://127.0.0.1:50015 # 手动修改修改配置文件方式 # 进入用户名根路径,找到 .gitconfig 文件,修改为 [http] proxy = http://127.0.0.1:50015 [https] proxy = http://127.0.0.1:50015 # 查看 http(s) 代理情况 $ git config --get --global http.proxy $ git config --get --global https.proxy # 永久 socks5 代理 $ git config --global http.proxy socks5://127.0.0.1:50014 $ git config --global https.proxy socks5://127.0.0.1:50014 # 修改配置文件方式:进入用户名根路径,找到 .gitconfig 文件,修改为: [http] proxy = socks5://127.0.0.1:50015 [https] proxy = socks5://127.0.0.1:50015 # 查看 socks5 代理情况 $ git config --get --global http.proxy $ git config --get --global https.proxy $ git config --get --global http.proxy socks5 $ git config --get --global https.proxy socks5 # 取消 http 或 socks 代理 $ git config --system (或 --global 或 --local) --unset http.proxy eg: $ git config --global --unset http.proxy $ git config --global --unset https.proxy三、增加/删除文件# 添加指定文件到暂存区 $ git add [file1] [file2] ... # 添加指定目录到暂存区,包括子目录 $ git add [dir] # 添加当前目录的所有文件到暂存区 $ git add . # 添加每个变化前,都会要求确认 # 对于同一个文件的多处变化,可以实现分次提交 $ git add -p # 删除工作区文件,并且将这次删除放入暂存区 $ git rm [file1] [file2] ... # 停止追踪指定文件,但该文件会保留在工作区 $ git rm --cached [file1] # 改名文件,并且将这个改名放入暂存区 $ git mv [file-original] [file-renamed]四、代码提交# 提交暂存区到仓库区 $ git commit -m [message] # 提交暂存区的指定文件到仓库区 $ git commit [file1] [file2] ... -m [message] # 提交工作区自上次commit之后的变化,直接到仓库区 $ git commit -a # 提交时显示所有diff信息 $ git commit -v # 使用一次新的commit,替代上一次提交 # 如果代码没有任何新变化,则用来改写上一次commit的提交信息 $ git commit --amend -m [message] # 重做上一次commit,并包括指定文件的新变化 $ git commit --amend [file1] [file2] ...五、分支# 列出所有本地分支 $ git branch # 列出所有远程分支 $ git branch -r # 列出所有本地分支和远程分支 $ git branch -a # 新建一个分支,但依然停留在当前分支 $ git branch [branch-name] # 新建一个分支,并切换到该分支 $ git checkout -b [branch] git checkout -b appoint_box(别名) origin/feature/20181128_1491627_appoint_box_1(分支名) # 新建一个分支,指向指定commit $ git branch [branch] [commit] # 新建一个分支,与指定的远程分支建立追踪关系 $ git branch --track [branch] [remote-branch] # 切换到指定分支,并更新工作区 $ git checkout [branch-name] # 切换到上一个分支 $ git checkout - # 建立追踪关系,在现有分支与指定的远程分支之间 $ git branch --set-upstream [branch] [remote-branch] # 合并指定分支到当前分支 $ git merge [branch] # 选择一个commit,合并进当前分支 $ git cherry-pick [commit] # 删除分支 $ git branch -d [branch-name] # 删除远程分支 $ git push origin --delete [branch-name] $ git branch -dr [remote/branch]六、标签# 列出所有tag $ git tag # 新建一个tag在当前commit $ git tag [tag] # 新建一个tag在指定commit $ git tag [tag] [commit] # 删除本地tag $ git tag -d [tag] # 删除远程tag $ git push origin :refs/tags/[tagName] # 查看tag信息 $ git show [tag] # 提交指定tag $ git push [remote] [tag] # 提交所有tag $ git push [remote] --tags # 新建一个分支,指向某个tag $ git checkout -b [branch] [tag]七、查看信息# 显示有变更的文件 $ git status # 显示当前分支的版本历史 $ git log # 显示commit历史,以及每次commit发生变更的文件 $ git log --stat # 搜索提交历史,根据关键词 $ git log -S [keyword] # 显示某个commit之后的所有变动,每个commit占据一行 $ git log [tag] HEAD --pretty=format:%s # 显示某个commit之后的所有变动,其"提交说明"必须符合搜索条件 $ git log [tag] HEAD --grep feature # 显示某个文件的版本历史,包括文件改名 $ git log --follow [file1] $ git whatchanged [file1] # 显示指定文件相关的每一次diff $ git log -p [file1] # 显示过去5次提交 $ git log -5 --pretty --oneline # 显示所有提交过的用户,按提交次数排序 $ git shortlog -sn # 显示指定文件是什么人在什么时间修改过 $ git blame [file1] # 显示暂存区和工作区的代码差异 $ git diff # 显示暂存区和上一个commit的差异 $ git diff --cached [file1] # 显示工作区与当前分支最新commit之间的差异 $ git diff HEAD # 显示两次提交之间的差异 $ git diff [first-branch]...[second-branch] # 显示今天你写了多少行代码 $ git diff --shortstat "@{0 day ago}" # 显示某次提交的元数据和内容变化 $ git show [commit] # 显示某次提交发生变化的文件 $ git show --name-only [commit] # 显示某次提交时,某个文件的内容 $ git show [commit]:[filename] # 显示当前分支的最近几次提交 $ git reflog 可以得到cimmit id # 从本地master拉取代码更新当前分支:branch 一般为master $ git rebase [branch]八、远程同步$ git remote update --更新远程仓储 # 下载远程仓库的所有变动 $ git fetch [remote] # 显示所有远程仓库 $ git remote -v # 显示某个远程仓库的信息 $ git remote show [remote] # 增加一个新的远程仓库,并命名 $ git remote add [shortname] [url1] # 取回远程仓库的变化,并与本地分支合并 $ git pull [remote] [branch] # 上传本地指定分支到远程仓库 $ git push [remote] [branch] # 强行推送当前分支到远程仓库,即使有冲突 $ git push [remote] --force # 推送所有分支到远程仓库 $ git push [remote] --all九、撤销# 恢复暂存区的指定文件到工作区 $ git checkout [file1] # 恢复某个commit的指定文件到暂存区和工作区 $ git checkout [commit] [file1] # 恢复暂存区的所有文件到工作区 $ git checkout . # 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变 $ git reset [file1] # 重置暂存区与工作区,与上一次commit保持一致 $ git reset --hard # 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变 $ git reset [commit] # 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致 $ git reset --hard [commit] # 重置当前HEAD为指定commit,但保持暂存区和工作区不变 $ git reset --keep [commit] # 新建一个commit,用来撤销指定commit # 后者的所有变化都将被前者抵消,并且应用到当前分支 $ git revert [commit] # 暂时将未提交的变化移除,稍后再移入 $ git stash $ git stash pop十、其他# 生成一个可供发布的压缩包 $ git archive 上传本地项目到远程仓库 1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2、把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件 git add . 3、用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明 git commit -m 'first commit' 4、关联到远程库 git remote add origin 你的远程库地址 如: git remote add origin https://github.com/githubusername/demo.git 5、获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败) git pull --rebase origin master 6、把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程。执行此命令后会要求输入用户名、密码,验证通过后即开始上传。 git push -u origin master 7、状态查询命令 git statusfetch vs pullgit fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。
2021年05月31日
214 阅读
0 评论
2021-05-27
Java 基础类型互相转换
Java 基础类型互相转换,int,String 转Integer、String 转Integer、String、Integer转为int、Integer转换为float, double, long、所有类型转String
2021年05月27日
168 阅读
2 评论
1
2
3