在上篇中提到通过 Jgit 实现对公司git的操作,达成业务上的一些功能,最近在扩容和部署到新租户环境下时,部分机器遇到操作远程仓库时报会报 remote hung up unexpectedly。 经过一番面向互联网编程后,逐步确认是因为服务器上仓库通过https 模式 clone 下来后被重置为 ssh 模式,目前还不确定是为什么这些机器会有这样的现象。具体报错信息如下:
org.eclipse.jgit.api.errors.TransportException: git@git.xxx.com:/xxxx.git: remote hung up unexpectedly
at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:246)
at org.eclipse.jgit.api.PullCommand.call(PullCommand.java:266)
............... 省略其他
Caused by: org.eclipse.jgit.errors.TransportException: git@git.xxx.com:/xxxx.git: remote hung up unexpectedly
at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:313)
at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:153)
at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:151)
at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:103)
at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1462)
at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:235)
在于远程仓库交互做身份验证时模式无法匹配,Jgit用https的身份认证方式操作了ssh模式的本地仓库。
by zhimaxingzhe from Java通过JGit操作Git的使用方法 欢迎分享链接,转载请注明出处,尊重版权,若急用请联系授权。 https://zhimaxingzhe.github.io
Java 社区操作与GIT交互的最好组件应该就是JGit了,目前没找到更好的,JGit是实现Git版本控制系统的纯Java库。 这是一个Eclipse项目,最初是EGit的Git库,它提供了与Eclipse的Git集成。 同时,JGit还有更多采用者,例如Gerrit,GitBlit,Jenkins的GitClient插件。近期在做配置文件发布功能时用到了,学习了JGit的使用,做一下分享。若有助益,请一键三连吧🤝。
与GIT交互如何做?最早我想通过在服务器上安装git客户端,在Java代码中执行shell命令的方式来实现对git的操作,这样一来非常灵活,代码都写好了(见文末)。但这样与GIT交互开发、调试工作量巨大,且部署需要运维做较多工作,且存在安全问题,对权限的控制要求严格。 后来找到JGit,了解到JGit 可以不依赖服务器安装 git client 即可对 GIT 进行操作,而且对GIT的绝大部分操作都封装好了API,真是太适合我的场景了。
此外,通过Jgit 直接操作Github,做成自己日常的工具,比如写博客,想要定时发布到Github上,则可以通过自己写代码实现啦。
本文梳理笔者的MQ知识,从消息中间件的基础知识讲起,在有了基础知识后,对市面上各主流的消息中间件进行详细的解析,包括 RabbitMQ、RocketMQ、Kafka、Pulsar,最后再横向对比这几款主流的消息中间件。
成熟的公司会有大量的存量系统,程序员难免接手他人开的的系统。万一不小心接手的系统过于腐烂,祖传代码难以破译,一边吃力不讨好艰难维护老系统,一边在上面做新业务,出了问题要背大锅,一头包,难有好成绩,满身疲惫,终成大冤种。本文尝试探讨如何接手遗留系统的方法论,重建遗留系统的道法术器势志,使得遗留系统跟上组织内系统演进和满足业务需求,逐步从泥沼中走脱。
样板博客网址为 zhimaxingzhe’s Blog
首先建立一个个人博客github仓库。其实只要把 博客代码(点击跳转) fork下来, 仓库名改为自己的.github.io就可以了。
fork下来项目以后别忘了看看 代码仓库-Settings-Pages的Branch等设置好没有。
大概等待几分钟看到settings-pages出现如下图标则表示已搭建成功, 可以通过其中的url访问了。
然后根据以下做需要的改造即可:
(Ps: 原本fork自大佬HyG, 做了一些个人改动。这里记录下各个文件的用途, 也帮助像我一样很少接触前端的后端迅速上手。)