【JGit】分支管理实践

本文紧接【JGit】简述及学习资料整理。

以下梳理了使用 JGit 进行 Git 操作的实践

JGit实践

主函数

public static void main(String[] args) throws Exception {String localDir = "D:\\tmp\\git-test\\";String gitUrl = "http://192.168.181.1:3000/root/git-test-by-code.git";String username = "root";String password = "123456";// 创建认证信息CredentialsProvider credentialsProvider = new UsernamePasswordCredentialsProvider(username, password);// 初始化 git 仓库Git git = Git.init().setDirectory(new File(localDir)).call();// Pull Test// pullTest(gitUrl, credentialsProvider, git);// ==== 分支管理// branchManage(git);// ==== 创建分支,并将其推送到远程仓库newBranchAndPush(credentialsProvider, git);// ==== 删除远程分支//deleteRemoteBranch(credentialsProvider, git);// 关闭 git 命令git.close();}

拉取代码

private static void pullTest(String gitUrl, CredentialsProvider credentialsProvider, Git git)throws GitAPIException, URISyntaxException, WrongRepositoryStateException, InvalidConfigurationException,InvalidRemoteException, CanceledException, RefNotFoundException, RefNotAdvertisedException, NoHeadException,TransportException {// 添加远程仓库信息git.remoteAdd().setName("origin").setUri(new URIish(gitUrl)).call();// 代码拉取PullResult pullResult = git.pull().setCredentialsProvider(credentialsProvider).call();log.info(">>> " + pullResult);if (pullResult.isSuccessful()) {log.info(">>> pull Result is Success");} else {log.error(">>> pull Result is Failes ");}}

分支管理

private static void branchManage(Git git) throws Exception {// 列出所有分支branchList(git);// 添加分支 devSystem.err.println("<<< 添加分支");git.branchCreate().setName("dev").call();branchList(git);// 修改分支名System.err.println("<<< 修改分支");git.branchRename().setOldName("dev").setNewName("dev-new").call();branchList(git);// 删除分支System.err.println("<<< 删除分支");git.branchDelete().setBranchNames("dev-new").call();branchList(git);}private static void branchList(Git git) throws Exception {// 获取默认分支String currentBranch = git.getRepository().getBranch();List<Ref> call = git.branchList().call();for (Ref ref : call) {boolean symbolic = ref.isSymbolic();boolean peeled = ref.isPeeled();String name = ref.getName();if(currentBranch.equals(name.substring(name.lastIndexOf('/') + 1))){name = "* \t"+ name;}else{name = "\t" + name;}System.out.println(">>> \t"+ name + "  " + ref.getObjectId().getName() + "  ,symbolic:" + symbolic + ", peeled: " + peeled);}}

创建新分支并推送到远程服务器

 private static void newBranchAndPush(CredentialsProvider credentialsProvider, Git git) throws Exception{// 创建 dev 分支Ref branchRef = git.branchCreate().setName("dev").call();// 推送分支到远程仓库Iterable<PushResult> results = git.push().setCredentialsProvider(credentialsProvider).setRemote("origin").add(branchRef).call();// 处理推送结果for (PushResult result : results) {for (RemoteRefUpdate update : result.getRemoteUpdates()) {System.out.println("Status: " + update.getStatus());}}
}

推送结果展示

在这里插入图片描述

删除远程分支

private static void deleteRemoteBranch(CredentialsProvider credentialsProvider, Git git) throws GitAPIException {String deleteBranch = "dev";RefSpec refSpec = new RefSpec().setSource(null).setDestination("refs/heads/" + deleteBranch);Iterable<PushResult> results = git.push().setCredentialsProvider(credentialsProvider).setRemote("origin").setRefSpecs(refSpec).call();// 处理推送结果for (PushResult result : results) {for (RemoteRefUpdate update : result.getRemoteUpdates()) {System.out.println("Status: " + update.getStatus());}}}

以上代码相当关于执行了 git push origin --delete dev 命令。

  • [【JGit】简述及学习资料整理]([JGit ]简述及学习资料整理-CSDN博客)
  • 【Gitea】Java 使用 JGit 创建 Git 代码仓库
  • Win 下 Docker 安装 Gitea 实践:windows docker desktop部署gitea

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/693299.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何邀请媒体参加活动报道?媒体邀约的几大步骤?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 邀请媒体参加活动报道通常需要发送邀请函、提供详细活动信息&#xff0c;并通过电话或邮件进行跟进确认。 在邀请媒体之前&#xff0c;应该制定一个详细的媒体规划表&#xff0c;包括拟…

高级统计方法 第2次作业

概念 1. &#xff08;a&#xff09; 光滑度高的好&#xff0c;样本足够多光滑度越高就越能表征真实情况&#xff0c;也能对预测变量更好的预测。 &#xff08;b&#xff09; 光滑度低的好&#xff0c;因为可能“过拟合”&#xff0c;一些误差大的数可能会较大的影响到预测…

Python asyncio+playwright批量获取deepL翻译

Playwright和Selenium一样&#xff0c;属于动态渲染工具&#xff0c;所以用asyncio异步协程加快一下速度。 大致框架是这样的&#xff0c;能跑是能跑&#xff0c;然而(:3[___]还有很多需要优化的地方&#xff0c;后面打算整理一下错误处理机制&#xff0c;引入队列&#xff0c…

机器学习速成

一&#xff0c;教程推荐 【(超爽中英!) 2023公认最好的【吴恩达机器学习】教程&#xff01;附课件代码 Machine Learning Specialization】https://www.bilibili.com/video/BV16C4y197St?vd_sourcedb98a5294f4e914ff8d9b0cad1ee6bda --吴恩达永远的神&#xff1b;然后需要点…

1313:【例3.5】位数问题——(思路非常的奇特,值得一看)

【题目描述】 在所有的N位数中&#xff0c;有多少个数中有偶数个数字33?由于结果可能很大&#xff0c;你只需要输出这个答案对1234512345取余的值。 【输入】 读入一个数N(N≤1000)。 【输出】 输出有多少个数中有偶数个数字3。 【输入样例】 2 【输出样例】 73 这是一道经…

Code-Audit(代码审计)习题记录

介绍&#xff1a; 自己懒得搭建靶场了&#xff0c;靶场地址是 GitHub - CHYbeta/Code-Audit-Challenges: Code-Audit-Challenges为了方便在公网练习&#xff0c;可以随地访问&#xff0c;本文所有的题目均来源于网站HSCSEC-Code Audit 1、习题一 题目内容如下&#xff1a; 1…

How to install a specific version of a package in R

How to install a specific version of a package in R 在使用R语言完成数据分析的过程中&#xff0c;很多时候&#xff0c;因为项目实际需要&#xff0c;我们应该指定某些库文件的安装包的版本&#xff0c;这个时候&#xff0c;我们可以基于devtools包中的函数install_version…

FX110网:easyMarkets易信被评为2023最佳外汇经纪商

easyMarkets 易信目前正在庆祝其进入行业第 23 周年&#xff0c;很高兴地宣布其在 2023 年 TradingView 经纪商奖中被授予“最佳外汇经纪商”称号&#xff0c;这是其第 51 次荣获殊荣奖项。 “我们的共同使命是为交易者提供最好的交易环境和交易工具。 得益于我们全球社区的广泛…

JQuery简介与解析

jQuery是一个快速、小巧、功能丰富的JavaScript库&#xff0c;它简化了HTML文档遍历、事件处理、动画和Ajax等操作。自从2006年由John Resig创建以来&#xff0c;jQuery已经成为Web开发中最受欢迎的JavaScript库之一。以下是对jQuery的简介和一些关键特性的解析&#xff0c;以及…

手把手将 VSCode 快捷键修改为 Eclipse 的快捷键

1.在 vscode 上方搜索栏输入 >keyboard 2. 选择图中红框的内容 3.将Eclipse的常用快捷键复制进去 { "key": "ctrld", "command": "-editor.action.addSelectionToNextFindMatch", "when": "editorFocus" }, {…

微信小程序video 点击自动全屏播放

//因为这个地址可能是图片也可能是视频 点击 图片可以预览&#xff0c;点击视频可放大全屏自动播放。 代码如下 <view v-else :class{contentImg: x.picture.length0} style"margin-top: 10px;"v-for"(x1, y1) in x.picture" :key"y"><…

selenium XPATH 使用简单例子

定位所有的 a 元素&#xff1a; //a 定位带有特定id属性的元素&#xff1a; //*[id“exampleId”] 定位带有特定class属性的元素&#xff1a; //*[contains(class, “exampleClass”)] 定位包含特定文本的元素&#xff1a; //*[text()“Example Text”] 定位包含特定部分文…

说一下 JVM 运行时数据区 ?

目录 一、程序计数器&#xff08;Program Counter Register&#xff09; 二、Java 虚拟机栈&#xff08;Java Virtual Machine Stacks&#xff09; 三、本地方法栈&#xff08;Native Method Stack&#xff09; 四、Java 堆&#xff08;Java Heap&#xff09; 五、方法区&…

我是怎么用静态IP代理为Google账号保驾护航的

我为何要使用到静态IP代理服务 我是一名IT从业者&#xff0c;在很多年前就加入了一家跨国软件公司&#xff0c;日常需要在全世界各地跟甲方沟通&#xff0c;负责的工作中重要的一块就是Google广告&#xff0c;为此公司还特意给配置了一台笔记本电脑。 目录 我为何要使用到静态…

【大厂AI课学习笔记】【2.2机器学习开发任务实例】(9)模型优化

模型训练后&#xff0c;就要进行模型优化了。 一般来讲&#xff0c;很简单&#xff0c;优化就是不换模型换参数&#xff0c;或者直接换模型。 换了之后来对比&#xff0c;最后选个最好的。 比如在本案例中&#xff0c;选择LinearRegression后&#xff0c;MSE从22下降到12&am…

ubuntu分辨率更改、开机被重置、ubuntu屏幕小

ubuntu分辨率更改 分辨率改成&#xff1a;1920x1200 xrandr --size 1920x1200 在此之前可以先输入 xrandr 看支持哪些分辨率 开机被重置 我已经设置成这样了&#xff0c; 一开机变回这个 ubuntu屏幕小 输入命令行 xrandr --size 1920x1200 这个下次重启ubuntu又会重置…

区块链笔记(二)

比特币与以太坊优劣 共同点 两者都是通过在线交易所交易并存储在各种加密钱包中的数字货币。它们也是去中心化的&#xff0c;并使用区块链的分布式账本技术。 区别 以太坊项目将区块链技术在数字货币的基础上进行了延伸&#xff0c;提出打造更为通用的智能合约平台的宏大构…

防御保护第五次作业

​​​​​​​ 1,FW1和FW3组成主备模式的双机热备 2,办公区设备可以通过电信链路和移动链路上网(多对多的NAT,并且需要保留一个公网IP不能用来转换) 3,分公司设备可以通过总公司的移动链路和电信链路访问到DMz区的http服务器 4,分公司内部的客户端可以通过公网地址访问到内部的…

【笔记】【算法设计与分析 - 北航童咏昕教授】绪论

算法设计与分析 - 北航童咏昕教授 文章目录 算法的定义定义性质 算法的表示自然语言编程语言伪代码 算法的分析算法分析的原则渐近分析 算法的定义 定义 给定计算问题&#xff0c;算法是一系列良定义的计算步骤&#xff0c;逐一执行计算步骤即可得预期的输出。 性质 有穷性确…

使用RK3588开发板使用scp指令互传-windows与开发板互传

MobaXterm 软件网盘下载路径&#xff1a;“iTOP-3588 开发板\02_【iTOP-RK3588 开发板】开发资 料\04_iTOP-3588 开发板所需 PC 软件&#xff08;工具&#xff09;\02-MobaXterm”。 打开 MobaXterm 创建一个 Shell 会话&#xff0c;如下图所示&#xff1a; 设置完成进入终端…